曾经稀里糊涂的用了,现在来搞明白吧!
tar 这个命令使用频率最高的方法可能就是下面这两个了:
1
2
|
$tar -czvf example.tar.gz ~/example # 压缩 example 文件为 example.tar.gz
$tar -xzvf ~/example.tar.gz # 解压缩 example.tar.gz 到当前目录
|
一直以来都是把 tar 当一个压缩指令来使用的,但是其实它只是一个打包命令,
并不具备压缩功能,tar 的压缩功能主要来自于 gzip/bzip2/xz 的支持。
参数
tar 支持的参数非常多,我们只需要记住几个常用的就好,完整的参数可以通过 man tar 查看。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$tar [-z|-j|-J] [cv] [-f 待创建的压缩文件名] filename... # 打包与压缩
$tar [-z|-j|-J] [tv] [-f 已有的压缩文件] # 查看压缩包内文件
$tar [-z|-j|-J] [xv] [-f 已有的压缩文件] [-C 指定解压缩目标目录] # 解压缩
选项与参数:
-c :建立新的压缩文件(常用)
-v :打印压缩/解压缩过程中正在处理的文件名(常用)
-z :通过 gzip 指令进行压缩/解压缩:此时文件名最好为 *.tar.gz(常用)
-f :-f 后面要立即接被处理的文件名,建议 -f 单独写(常用)
-x :从备份文件中还原文件(常用)
-C :指定解压缩目标目录(常用)
-t :列出压缩文件中的内容
-j :通过 bzip2 指令进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J :通过 xz 指令进行压缩/解压缩:此时文件名最好为 *.tar.xz
特別留意, -z, -j, -J 不可以同時出現在一串指令列中
-p :保留压缩文件的原本权限与属性,常用于备份敏感文件
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
|
因为 [-f filename] 是靠在一起的,所以在开头写成 [-czvf filename] 是对的,
但是如果写成 [-czfv filename] 此时生成的压缩文件名就变成了 v,
所以最好将 -f 独立开来。
压缩方式的选择
上面列出的参数中有 3 种压缩方式可选,但是为什么只有 gzip 标注了常用呢?
其实具体原因我也不知道,个人猜测有两个:
- gzip 生成的文件:*.tar.gz ,拥有更好的支持,例如 Windows 平台下的 WinRAR
- gzip 拥有更快的压缩速度
更快的压缩速度意味着更小的压缩比,所以如果压缩的文件很大,时间成本也是需要考虑的。
如果你的存储空间比较有限,就选择 -J 啦,xz 是压缩比最高的!
> 参考链接:
鸟哥的 Linux 私房菜