打包命令 tar

c 创建一个新的归档文件
x 对归档文件解压
t 查看归档文件里的文件
v 显示执行过程
f 指定包名

z 使用gzip压缩归档文件 .tar.gz
j 使用bzip2压缩归档文件 .tar.gz2
J 使用xz压缩归档后的文件 .tar.xz
C 指定压缩位置
X 排除多个文件
h 打包软链接

.tar.gz zcf
[root@rstx-53 test]# tar zcf etc.tar.gz  /etc
tar: Removing leading `/' from member names
[root@rstx-53 test]# ls
etc.tar.gz
[root@rstx-53 test]# tar tf etc.tar.gz 
etc/named/
etc/named.rfc1912.zones
........
.tar.gz2
[root@rstx-53 test]# tar jcf etc.tar.gz2 /etc
[root@rstx-53 test]# du -sh *
17M	etc.tar.gz
15M	etc.tar.gz2
[root@rstx-53 test]# tar jxf etc.tar.gz2 #解压过程中会覆盖文件
[root@rstx-53 test]# du -sh etc
57M	etc
.tar.xz
[root@rstx-53 test]# tar Jcf etc.tar.xz /etc
tar: Removing leading `/' from member names
[root@rstx-53 test]# ls
etc  etc.tar.gz  etc.tar.gz2  etc.tar.xz
[root@rstx-53 test]# du -sh *
17M	etc.tar.gz
15M	etc.tar.gz2
12M	etc.tar.xz

[root@rstx-53 test]# tar Jxf etc.tar.xz 
[root@rstx-53 test]# ls
etc  etc.tar.gz  etc.tar.gz2  etc.tar.xz
[root@rstx-53 test]# du -sh *
57M	etc
17M	etc.tar.gz
15M	etc.tar.gz2
12M	etc.tar.xz
[root@rstx-53 test]# du -sh etc
57M	etc
tar xf 解压并覆盖
[root@rstx-53 test]# tar jxf etc.tar.gz2 #解压过程中会覆盖文件
[root@rstx-53 test]# du -sh etc
57M	etc
tar -C 指定解压路径
[root@rstx-53 test]# tar xf etc.tar.gz -C ../
[root@rstx-53 test]# ll ../etc/
total 1384
drwxr-xr-x  3 root   root     101 Feb 24 15:45 abrt
-rw-r--r--  1 root   root      16 Sep 22 15:03 adjtime
-rw-r--r--  1 root   root    1529 Apr  1  2020 aliases
-rw-r--r--  1 root   root   12288 Feb 24 15:47 aliases.db
find查找文件并打包
[root@rstx-53 test]# tar zcvf etc_2.tar.gz $(find /etc/ -size +5M)
tar: Removing leading `/' from member names
/etc/udev/hwdb.bin
/etc/ansible/roles/ca_ssl/files/cfssl-certinfo_linux-amd64
/etc/ansible/roles/ca_ssl/files/cfssl_linux-amd64
[root@rstx-53 test]# find /etc/ -size +5M  |xargs tar zcvf etc_1.tar.gz 
tar: Removing leading `/' from member names
/etc/udev/hwdb.bin
/etc/ansible/roles/ca_ssl/files/cfssl-certinfo_linux-amd64
/etc/ansible/roles/ca_ssl/files/cfssl_linux-amd64
tar --exclude 排除某个
单个文件或者目录排除
[root@rstx-53 test]# tar zcf test.tar.gz ./* --exclude=1
[root@rstx-53 test]# ls
1  2  3  test.tar.gz
[root@rstx-53 test]# tar tf test.tar.gz 
./2/
./2/index.html
./3/
./3/index.html
[root@rstx-53 test]# tar tf test.tar.gz 
./2/
./2/index.html
./3/
./3/index.html
多个文件排除
[root@rstx-53 test]# tar zcf test.tar.gz ./* --exclude=1 --exclude=2/* 
[root@rstx-53 test]# tar tf test.tar.gz 
./2/
./3/
./3/index.html
./test.tar.gz
用文件记录排除 X 
[root@rstx-53 test]# tar zcfX test.tar.gz 1.txt ./*
[root@rstx-53 test]# tar tf test.tar.gz 
./1/
./1/index.html
原文地址:https://www.cnblogs.com/yangtao416/p/14490763.html