Linux 打包 压缩 解压 命令详解

tar 命令是 Linux 环境下最基本的打包工具,注意打包并不等同于压缩。打包只是负责将多个文件整理后合成为一个文件包(即归档,方便传输分享),一般后缀为 .tar。而文件打包后通常都要进行压缩,以节省空间和传输时间。
所以打包和压缩是紧密相关但并不相同的两个命令(过程)。用 tar 命令加上适当的选项可以统一执行这两道程序。

一、压缩命令

常用的 Linux 压缩工具如下:

压缩工具 对应后缀 对应 tar 选项
gzip .gz z
bzip2 .bz.bz2 j
compress .Z Z
xz .xz J
lzma .lzma a

PS:lzma 等同于 xz –format=lzma

关于上面表格中的压缩命令,命令选项都大同小异。可以查看相应的帮助信息(如 gzip --help)或手册(如 man xz)。

二、使用 tar 命令打包压缩

单独使用压缩命令(如 gzip 或 bzip2)的情形并不常见,多用于单个文件或对多个文件逐个进行压缩。更多的时候使用 tar 命令先打包多个文件目录后再配合指定的选项执行压缩操作。

tar 命令选项:

第一选项(指定操作方式)

  • -c :创建归档文件
  • -x :解包归档文件
  • -t :列出归档文件的内容列表
  • -r :向归档文件中添加(替换)文件(只对未压缩的归档文件有效)
  • -u :更新归档文件中的内容(只对未压缩的归档文件有效)

压缩选项(指定压缩方法)
-z-j-J-a,分别对应于 gzipbzip2xzlzma 四种压缩命令。

通用选项

  • -v :开启更详细的输出信息
  • -f :指定归档文件的位置
  • -w :交互模式

tar 命令压缩、解压及查看内容

三、总结
  1. tar 格式:
    打包:tar -cvf Archive.tar DirName
    解包:tar -xvf Archive.tar
  2. gz 格式:
    压缩:gzip FileName
    解压:gzip -d FileName.gzgunzip FileName.gz
  3. tar.gz 或 tgz 格式:
    压缩:tar -czvf FileName.tar.gz DirName
    解压:tar -xzvf FileName.tar.gz
  4. bz 或 bz2 格式:
    压缩:bzip2 -z FileName
    解压:bzip2 -d FileName.bzbunzip2 FileName.bz
  5. tar.bz 或 tar.bz2 格式:
    压缩:tar -cjvf FileName.tar.bz DirName
    解压:tar -xjvf FileName.tar.bz
  6. Z 格式:
    压缩:compress FileName
    解压:uncompress FileName.Z
  7. tar.Z 格式:
    压缩:tar -cZvf FileName.tar.Z DirName
    解压:tar -xZvf FileName.tar.Z
  8. xz 格式:
    压缩:xz -z FileName.xz DirName
    解压:xz -d FileName.xzunxz FileName.xz
  9. tar.xz 格式:
    压缩:tar -cJvf FileName.tar.xz DirName
    解压:tar -xJvf FileName.tar.xz
  10. zip 格式:
    压缩:zip FileName.zip DirName
    解压:unzip FileName.zip

更详细的 tar 命令使用方法可参见 man tar