Linux 解压缩命令

如何在 Linux 上解析不同的压缩包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用来在压缩包中进行搜索等操作的小技巧。
07.png

Linux 压缩命令

08.png

tar 压缩软件

计算机中的数据经常需要备份,tar 是 Unix/Linux 中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。其实说白了,就是打包。

  1. $ tar [参数] 打包文件名 文件

tar 常用参数:
tar 命令很特殊,其参数前面可以使用“-”,也可以不使用。

参数 含义
-c 生成档案文件,创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t 列出档案中包含的文件
-x 解开档案文件

注意:除了f需要放在参数的最后,其它参数的顺序任意。

  1. # 创建一个新的tar文件
  2. $ tar cvf archive_name.tar dirname/
  3. # 解压tar文件
  4. $ tar xvf archive_name.tar
  5. 查看tar文件
  6. $ tar tvf archive_name.tar

tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

  1. # -z :指定压缩包的格式为:.tar.gz
  2. $ tar cvzf 压缩包包名 文件1 文件2 ...
  1. # -z :指定压缩包的格式为:.tar.gz
  2. $ tar zxvf 压缩包包名

解压到指定目录:-C (大写字母“C”)

gzip 文件压缩解压

tar 与 gzip 命令结合使用实现文件打包、压缩。 tar 只负责打包文件,但不压缩,用 gzip 压缩 tar 打包后的文件,其扩展名一般用xxxx.tar.gz。

  1. $ gzip [选项] 被压缩文件

常用选项:

选项 含义
-d 解压
-r 压缩所有子目录
  1. # 创建一个*.gz的压缩文件
  2. $ gzip test.txt
  3. # 解压*.gz文件
  4. $ gzip -d test.txt.gz
  1. # -c 和>重定向保留源文件
  2. $ gzip -cd clint_oss.py.gz > clint_oss.py

显示压缩的比率

  1. $ gzip -l clint_oss.py.gz
  2. compressed uncompressed ratio uncompressed_name
  3. 2778 6917 59.8% clint_oss.py

bzip2 文件压缩解压

扩展名xxx.bz2

  1. # 压缩文件
  2. $ bzip2 test.txt
  3. # 解压*.bz2文件
  4. $ 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 压缩

  1. $ zip oss.zip clint_oss.py clint_oss.py.gz
  2. adding: clint_oss.py (deflated 60%)
  3. adding: clint_oss.py.gz (stored 0%)

uzip 解压文件

  1. unzip oss.zip

查看压缩文件的内容

  1. $ unzip -l oss.zip
  2. Archive: oss.zip
  3. Length Date Time Name
  4. --------- ---------- ----- ----
  5. 2778 01-12-2020 11:52 clint_oss.py.gz
  6. 6917 01-12-2020 11:57 clint_oss.py
  7. --------- -------
  8. 9695 2 files