在 Linux 上面更常用的是 tar
工具,tar 原本只是一个打包工具,只是同时还是实现了对 7z、gzip、xz、bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,所以我们也无需再单独去学习其他几个工具,tar 的解压和压缩都是同一个命令,只需参数不同,使用比较方便。
下面先掌握 tar
命令一些基本的使用方式,即不进行压缩只是进行打包(创建归档文件)和解包的操作。
- 创建一个 tar 包:
$ cd /home/shiyanlou
$ tar -cf shiyanlou.tar /home/shiyanlou/Desktop
上面命令中,-c
表示创建一个 tar 包文件,-f
用于指定创建的文件名,注意文件名必须紧跟在 -f
参数之后,比如不能写成 tar -fc shiyanlou.tar
,可以写成 tar -f shiyanlou.tar -c ~
。你还可以加上 -v
参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /
,你也可以使用 -P
保留绝对路径符。
- 解包一个文件(
-x
参数)到指定路径的已存在目录(-C
参数):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
- 只查看不解包文件
-t
参数:
$ tar -tf shiyanlou.tar
- 保留文件属性和跟随链接(符号链接或软链接),有时候我们使用 tar 备份文件当你在其他主机还原时希望保留文件的属性(
-p
参数)和备份链接指向的源文件而不是链接本身(-h
参数):
$ tar -cphf etc.tar /etc
对于创建不同的压缩格式的文件,对于 tar 来说是相当简单的,需要的只是换一个参数,这里我们就以使用 gzip
工具创建 *.tar.gz
文件为例来说明。
- 我们只需要在创建 tar 文件的基础上添加
-z
参数,使用gzip
来压缩文件:
$ tar -czf shiyanlou.tar.gz /home/shiyanlou/Desktop
- 解压
*.tar.gz
文件:
$ tar -xzf shiyanlou.tar.gz
现在我们要使用其它的压缩工具创建或解压相应文件只需要更改一个参数即可:
压缩文件格式 | 参数 |
---|---|
*.tar.gz | -z |
*.tar.xz | -J |
*tar.bz2 | -j |
tar 命令的参数很多,不过常用的就是上述这些,需要了解更多你可以查看 man 手册获取帮助。