tar 打包/压缩 in Linux
tar 是 Linux 下常用的处理打包或压缩的常用命令,常用来处理后缀名为:tar, tar.gz tar.bz2 的文件。
tar:存档格式,未经过压缩
tar.gz:在tar基础上进行 gzip 压缩,tar.gz 和 tgz 类似
tar.bz2:比 gzip 压缩比更高,但更耗时, tar.bz2,tbz 和 tb2 类似
语法
tar [options] [archive-file] [file or directory to be archived]
-c : 建立存档
-x : 解压存档
-f : 指定文件名
-t : 列出文档内容
-u : archives and adds to an existing archive file
-v : 显示处理过程信息
-z : zip, 指定处理 gzip
-j : 指定处理 tbzip
-W : 验证存档
-r : 添加文件/文件夹到已知存档
打包存档
tar:
tar -cvf test.tar /home/test
tar.gz:
tar -zcvf test.tar.gz /home/test
或
tar -zcvf test.tgz /home/test
tar.bz2:
tar -jcvf test.tar.bz2 /home/test
或
tar -jcvf test.tar.tb2 /home/test
或
tar -jcvf test.tar.tbz /home/test
将文件/文件夹添加到存档
tar -rvf test.tar file
tar -rvf test.tar.gz file
tar -rvf test.tar.zb2 file
解压存档
tar:
tar -xvf test.tar
解压到特定目录:-C
tar -xvf test.tar -C /home/path/
tar.gz:
tar -zxvf test.tar.gz
解压到特定目录:-C
tar -zxvf test.tar.gz -C /home/path/
tar.bz2:
tar -jxvf test.tar.bz2
解压到特定目录:-C
tar -jxvf test.tar.bz2 -C /home/path/
解压存档部分文件/文件夹
解压单个文件:
tar -xvf test.tar file.sh
tar -zxvf test.tar.gz file.sh
tar -jxvf test.tar.zb2 file.sh
解压多个文件:
tar -xvf test.tar "file1" "file2"
tar -zxvf test.tar.gz "file1" "file2"
tar -jxvf test.tar.zb2 "file1" "file2"
解压特定名字的文件:
tar -xvf test.tar --wildcards '*.php'
tar -zxvf test.tar.gz --wildcards '*.php'
tar -jxvf test.tar.zb2 --wildcards '*.php'
list 存档内容
tar -tvf test.tar
tar -tvf test.tar.gz
tar -tvf test.tar.zb2
验证存档
只能验证 tar 打包的存档:-W
tar tvfW test.tar
检查存档大小size
tar czf file.tar | wc -c
tar czf file.tar.gz | wc -c
tar czf file.tar.tbz | wc -c