Linux 解压缩命令
如何在 Linux 上解析不同的压缩包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用来在压缩包中进行搜索等操作的小技巧。
Linux 压缩命令
tar 压缩软件
计算机中的数据经常需要备份,tar 是 Unix/Linux 中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。其实说白了,就是打包。
$ tar [参数] 打包文件名 文件
tar
常用参数:
tar 命令很特殊,其参数前面可以使用“-”,也可以不使用。
参数 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
注意:除了f需要放在参数的最后,其它参数的顺序任意。
# 创建一个新的tar文件
$ tar cvf archive_name.tar dirname/
# 解压tar文件
$ tar xvf archive_name.tar
查看tar文件
$ tar tvf archive_name.tar
tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
# -z :指定压缩包的格式为:.tar.gz
$ tar cvzf 压缩包包名 文件1 文件2 ...
# -z :指定压缩包的格式为:.tar.gz
$ tar zxvf 压缩包包名
解压到指定目录:-C (大写字母“C”)
gzip 文件压缩解压
tar 与 gzip 命令结合使用实现文件打包、压缩。 tar 只负责打包文件,但不压缩,用 gzip 压缩 tar 打包后的文件,其扩展名一般用xxxx.tar.gz。
$ gzip [选项] 被压缩文件
常用选项:
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
# 创建一个*.gz的压缩文件
$ gzip test.txt
# 解压*.gz文件
$ gzip -d test.txt.gz
# -c 和>重定向保留源文件
$ gzip -cd clint_oss.py.gz > clint_oss.py
显示压缩的比率
$ gzip -l clint_oss.py.gz
compressed uncompressed ratio uncompressed_name
2778 6917 59.8% clint_oss.py
bzip2 文件压缩解压
扩展名xxx.bz2
# 压缩文件
$ bzip2 test.txt
# 解压*.bz2文件
$ bzip2 -d test.txt.bz2
zip 文件压缩解压
扩展名xxx.zip。
选项 | 含义 |
---|---|
-c | 将解压缩的结果 |
-l | 显示压缩文件内所包含的文件 |
-p | 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换 |
-t | 检查压缩文件是否正确 |
-u | 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中 |
-v | 执行是时显示详细的信息 |
-z | 仅显示压缩文件的备注文字 |
-a | 对文本文件进行必要的字符转换 |
-b | 不要对文本文件进行字符转换 |
-C | 压缩文件中的文件名称区分大小写 |
-j | 不处理压缩文件中原有的目录路径 |
-L | 将压缩文件中的全部文件名改为小写 |
-M | 将输出结果送到more程序处理 |
-n | 解压缩时不要覆盖原有的文件 |
-o | 不必先询问用户,unzip执行后覆盖原有文件 |
-P | 使用zip的密码选项 |
-q | 执行时不显示任何信息 |
-s | 将文件名中的空白字符转换为底线字符 |
-V | 保留VMS的文件版本信息 |
-X | 解压缩时同时回存文件原来的UID/GID |
zip 压缩
$ zip oss.zip clint_oss.py clint_oss.py.gz
adding: clint_oss.py (deflated 60%)
adding: clint_oss.py.gz (stored 0%)
uzip 解压文件
unzip oss.zip
查看压缩文件的内容
$ unzip -l oss.zip
Archive: oss.zip
Length Date Time Name
--------- ---------- ----- ----
2778 01-12-2020 11:52 clint_oss.py.gz
6917 01-12-2020 11:57 clint_oss.py
--------- -------
9695 2 files