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,分别对应于 gzip,bzip2,xz,lzma 四种压缩命令。
通用选项:
- -v :开启更详细的输出信息
- -f <filename> :指定归档文件的位置
- -w :交互模式
三、总结
- tar 格式:
打包:tar -cvf Archive.tar DirName
解包:tar -xvf Archive.tar
- gz 格式:
压缩:gzip FileName
解压:gzip -d FileName.gz
或gunzip FileName.gz
- tar.gz 或 tgz 格式:
压缩:tar -czvf FileName.tar.gz DirName
解压:tar -xzvf FileName.tar.gz
- bz 或 bz2 格式:
压缩:bzip2 -z FileName
解压:bzip2 -d FileName.bz
或bunzip2 FileName.bz
- tar.bz 或 tar.bz2 格式:
压缩:tar -cjvf FileName.tar.bz DirName
解压:tar -xjvf FileName.tar.bz
- Z 格式:
压缩:compress FileName
解压:uncompress FileName.Z
- tar.Z 格式:
压缩:tar -cZvf FileName.tar.Z DirName
解压:tar -xZvf FileName.tar.Z
- xz 格式:
压缩:xz -z FileName.xz DirName
解压:xz -d FileName.xz
或unxz FileName.xz
- tar.xz 格式:
压缩:tar -cJvf FileName.tar.xz DirName
解压:tar -xJvf FileName.tar.xz
- zip 格式:
压缩:zip FileName.zip DirName
解压:unzip FileName.zip
更详细的 tar 命令使用方法可参见
man tar