linux 系列文章目录 - 打包压缩命令
前言
打包: 是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化。
压缩: 是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小,可以节省存储空间,在压缩的时候通常是先打包再压缩。压缩的过程中,我们可以发现:
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz
当直接使用 cp -r 拷贝资料到另一个存储介质时,会出现权限问题(如所有文件都增加 +x 权限)。因此,拷贝资料需要先打包压缩,后解压,才不会有权限问题。
一、tar 命令
1.1 参数解释
以下是tar常用命令参数解释:
[test@test-thinkcentrem930t-n000 ~]$ man tar
-c 新建打包文件,同 -v一起使用 查看过程中打包文件名
-v 压缩或解压过程中,显示过程
-f 要操作的文件名
-r 表示增加文件,把要增加的文件追加在压缩文件的末尾
-t 表示查看文件,查看文件中的文件内容
-x 解压文件
-z 通过gzip方式压缩或解压,最后以.tar.gz 为后缀,此种方式无法给它追加文件
-j 通过bzip2方式压缩或解压,最后以.tar.br2 为后缀。压缩后大小小于.tar.gz
-u 更新压缩文件中的内容
-p 保留绝对路径,即允许备份数据中含有根目录
-P 保留数据原来权限及属性
-N 比某个日期新的文件才备份,如 -N '2020/02/27'
--exclude 备份的时候排除部分文件或目录
-r 追加文件
1.2 压缩实例
# .tar.bz2 压缩
[test@test-thinkcentrem930t-n000 ~]$ tar -jcvf test.tar.bz2 test
# .tar.gz 压缩,-zcvf 无法追加文件, -cvf 可追加文件
[test@test-thinkcentrem930t-n000 ~]$ tar -zcvf test.tar.gz test
# 压缩后,追加文件
[test@test-thinkcentrem930t-n000 ~]$ tar -rvf test.tar.gz test
# .tar.gz 加密压缩
[test@test-thinkcentrem930t-n000 ~]$ tar -czvf - test | openssl des3 -salt -k 123456 -out test.tar.gz
# .tar.gz 压缩的时候排除部分文件或目录
[test@test-thinkcentrem930t-n000 ~]$ tar -zcvf test.tar.gz test --exclude log
1.3 解压实例
# .tar.bz2 压缩
[test@test-thinkcentrem930t-n000 ~]$ tar -jcvf test.tar.bz2
# .tar.gz 压缩
[test@test-thinkcentrem930t-n000 ~]$ tar -zcvf test.tar.gz
1.4 查看文件实例
# -tf 查看压缩文件名,-tvf 可查看压缩文件文件:所属权限、用户名用户组、日期等
[test@test-thinkcentrem930t-n000 ~]$ tar -tf test.tar.gz
1.5 删除文件实例
# -vf 可删除压缩包中的文件
[test@test-thinkcentrem930t-n000 ~]$ tar --delete -vf test.tar.gz log1 log2