tar 语法格式: tar [选项] [文件或目录] 参数选项: z 通过gzip压缩或解压。 c 创建新的tar包。 v 显示详细的tar命令执行过程。 f 指定压缩文件的名字。 t 不解压,仅查看tar包的内容。 p(小写) 保持文件的原有属性。 P(大写) 以绝对路径打包,危险参数!!! j 通过bzip2命令压缩或压缩。 x 解开tar包。 C(大写) 指定解压的目录路径。 --exclude=PATTERN 打包时不需要处理的文件或目录。若需要打包的目录为相对路径,则 --exclude后只能接相对路径。若需要打包的目录为绝对路径,则 --exclude后只能接绝对路径。 -X 文件名 从指定文件读取不需要处理的文件或目录列表。 -N 日期 仅打包比指定日期新的文件,可用于增量打包备份。 -h 打包软链接文件指向的真实源文件。 --hard-dereference 打包硬链接文件。 备份目录下所有文件 [root@testdb ~]# mkdir logs [root@testdb ~]# touch logs/{1..10}.log [root@testdb ~]# ls logs 10.log 1.log 2.log 3.log 4.log 5.log 6.log 7.log 8.log 9.log [root@testdb ~]# tar -zcvf logs.tar.gz ./logs/ ./logs/ ./logs/2.log ./logs/10.log ./logs/1.log ./logs/3.log ./logs/7.log ./logs/6.log ./logs/5.log ./logs/4.log ./logs/8.log ./logs/9.log [root@testdb ~]# ls -lh total 8.0K drwxr-xr-x 2 root root 4.0K Dec 17 17:22 logs -rw-r--r-- 1 root root 215 Dec 17 17:23 logs.tar.gz 查看压缩包的内容 [root@testdb ~]# ls -lh logs.tar.gz -rw-r--r-- 1 root root 215 Dec 17 17:23 logs.tar.gz [root@testdb ~]# [root@testdb ~]# tar -ztvf logs.tar.gz drwxr-xr-x root/root 0 2020-12-17 17:22 ./logs/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/2.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/10.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/1.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/3.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/7.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/6.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/5.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/4.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/8.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/9.log 解开压缩包到指定目录 [root@testdb ~]# tar -zxvf logs.tar.gz -C /tmp/ ./logs/ ./logs/2.log ./logs/10.log ./logs/1.log ./logs/3.log ./logs/7.log ./logs/6.log ./logs/5.log ./logs/4.log ./logs/8.log ./logs/9.log [root@testdb ~]# [root@testdb ~]# ll /tmp/logs/ total 0 -rw-r--r-- 1 root root 0 Dec 17 17:22 10.log -rw-r--r-- 1 root root 0 Dec 17 17:22 1.log -rw-r--r-- 1 root root 0 Dec 17 17:22 2.log -rw-r--r-- 1 root root 0 Dec 17 17:22 3.log -rw-r--r-- 1 root root 0 Dec 17 17:22 4.log -rw-r--r-- 1 root root 0 Dec 17 17:22 5.log -rw-r--r-- 1 root root 0 Dec 17 17:22 6.log -rw-r--r-- 1 root root 0 Dec 17 17:22 7.log -rw-r--r-- 1 root root 0 Dec 17 17:22 8.log -rw-r--r-- 1 root root 0 Dec 17 17:22 9.log 排除打包 注意:logs/testdir 目录结尾不要加 / ,否则不会成功。 排除2个以上目录的方法:并列使用多个 --exclude 排除一个目录 [root@testdb ~]# mkdir logs/{testdir1,testdir2} [root@testdb ~]# ll logs/ total 8 -rw-r--r-- 1 root root 0 Dec 17 17:22 10.log -rw-r--r-- 1 root root 0 Dec 17 17:22 1.log -rw-r--r-- 1 root root 0 Dec 17 17:22 2.log -rw-r--r-- 1 root root 0 Dec 17 17:22 3.log -rw-r--r-- 1 root root 0 Dec 17 17:22 4.log -rw-r--r-- 1 root root 0 Dec 17 17:22 5.log -rw-r--r-- 1 root root 0 Dec 17 17:22 6.log -rw-r--r-- 1 root root 0 Dec 17 17:22 7.log -rw-r--r-- 1 root root 0 Dec 17 17:22 8.log -rw-r--r-- 1 root root 0 Dec 17 17:22 9.log drwxr-xr-x 2 root root 4096 Dec 17 18:37 testdir1 drwxr-xr-x 2 root root 4096 Dec 17 18:37 testdir2 [root@testdb ~]# tar -zcvf logs2.tar.gz ./logs/ --exclude=logs/testdir2 ./logs/ ./logs/2.log ./logs/10.log ./logs/1.log ./logs/3.log ./logs/7.log ./logs/6.log ./logs/testdir1/ ./logs/5.log ./logs/4.log ./logs/8.log ./logs/9.log [root@testdb ~]# ls -lh logs2.tar.gz -rw-r--r-- 1 root root 243 Dec 17 18:38 logs2.tar.gz [root@testdb ~]# tar ztvf logs2.tar.gz drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/2.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/10.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/1.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/3.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/7.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/6.log drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/testdir1/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/5.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/4.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/8.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/9.log 排除多个文件 [root@testdb ~]# ll ./logs/ total 8 -rw-r--r-- 1 root root 0 Dec 17 17:22 10.log -rw-r--r-- 1 root root 0 Dec 17 17:22 1.log -rw-r--r-- 1 root root 0 Dec 17 17:22 2.log -rw-r--r-- 1 root root 0 Dec 17 17:22 3.log -rw-r--r-- 1 root root 0 Dec 17 17:22 4.log -rw-r--r-- 1 root root 0 Dec 17 17:22 5.log -rw-r--r-- 1 root root 0 Dec 17 17:22 6.log -rw-r--r-- 1 root root 0 Dec 17 17:22 7.log -rw-r--r-- 1 root root 0 Dec 17 17:22 8.log -rw-r--r-- 1 root root 0 Dec 17 17:22 9.log drwxr-xr-x 2 root root 4096 Dec 17 18:37 testdir1 drwxr-xr-x 2 root root 4096 Dec 17 18:37 testdir2 [root@testdb ~]# tar -zcvf logs3.tar.gz ./logs/ --exclude=logs/9.log --exclude=logs/10.log ./logs/ ./logs/2.log ./logs/1.log ./logs/3.log ./logs/7.log ./logs/6.log ./logs/testdir1/ ./logs/5.log ./logs/testdir2/ ./logs/4.log ./logs/8.log [root@testdb ~]# tar ztvf logs3.tar.gz drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/2.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/1.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/3.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/7.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/6.log drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/testdir1/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/5.log drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/testdir2/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/4.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/8.log 排除多个目录 [root@testdb ~]# tar -zcvf logs4.tar.gz ./logs/ --exclude=logs/testdir1 --exclude=logs/testdir2 ./logs/ ./logs/2.log ./logs/10.log ./logs/1.log ./logs/3.log ./logs/7.log ./logs/6.log ./logs/5.log ./logs/4.log ./logs/8.log ./logs/9.log [root@testdb ~]# tar ztvf logs4.tar.gz drwxr-xr-x root/root 0 2020-12-17 18:37 ./logs/ -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/2.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/10.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/1.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/3.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/7.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/6.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/5.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/4.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/8.log -rw-r--r-- root/root 0 2020-12-17 17:22 ./logs/9.log 使用-h参数打包链接文件 [root@testdb tmp]# cd /etc [root@testdb etc]# tar zcf local.tar.gz ./rc.local [root@testdb etc]# tar tvf local.tar.gz lrwxrwxrwx root/root 0 2018-08-08 11:11 ./rc.local -> rc.d/rc.local [root@testdb etc]# tar zchf my_local.tar.gz ./rc.local [root@testdb etc]# tar tfv my_local.tar.gz -rwxr-xr-x root/root 749 2020-11-29 18:23 ./rc.local 说明:如果一个文件是链接文件,不实用-h参数打包的话只会对链接文件本身打包,而不是对链接文件指向的真实打包。 打包/etc目录下所有的普通文件 [root@testdb etc]# cd [root@testdb ~]# cd /etc/ [root@testdb etc]# tar zcvf etc.tar.gz `find /etc/ -type f`