示例1:使用 -T 及 -X 创建压缩归档文件
想像这样一个场景:把想要归档和压缩的文件及目录记录到到一个文件,然后把这个文件当做 tar 命令的传入参数来完成归档任务;
而有时候则是需要排除上面提到的这个文件里面记录的特定路径后进行归档和压缩。
在 tar 命令中使用 -T 选项来指定该输入文件,使用 -X 选项来指定包含要排除的文件列表。
假设要归档 /etc、/opt、/home 目录,并排除 /etc/sysconfig/kdump
和 /etc/sysconfig/foreman 文件,
可以创建 /root/tar-include 和 /root/tar-exclude 然后分别输入以下内容:
cat /root/tar-include /etc
/opt
/home
cat /root/tar-exclude /etc/sysconfig/kdump
/etc/sysconfig/foreman
运行以下命令来创建一个压缩归档文件。
tar zcpvf mybackup-$(date +%Y-%m-%d).tgz -T /root/tar-include -X /root/tar-exclude
示例2:查看 .tar、.tgz 和 .tbz2 文件的大小
使用如下命令来查看 (压缩) tar 文件的体积。
tar -czf - data.tar | wc -c 427
tar -czf - mybackup-2016-09-09.tgz | wc -c 37956009
tar -czf - myarchive.tbz2 | wc -c 30835317
示例3:分割体积庞大的 tar 文件为多份小文件
类 Unix 系统中使用 split 命令来将大体积文件分割成小体积文件。大体积的 tar 当然也可以使用这个命令来进行分割。
假设需要将 “mybackup-2016-09-09.tgz” 分割成每份 6 MB 的小文件。
[root@linuxtechi ~]# split -b 6M mybackup-2016-09-09.tgz mybackup-parts
以上命令会在当前目录分割 mybackup-2016-09-09.tgz 文件成为多个 6 MB 的小文件,
文件名为 mybackup-partsaa ~ mybackup-partsag。
如果在要在分割文件后以数字而非字母来区分,可以在以上的 split 命令使用-d 选项。
[root@linuxtechi ~]# ls -l mybackup-parts*
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaa
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsab
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsac
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsad
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsae
-rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaf
-rw-r--r--. 1 root root 637219 Sep 10 03:05 mybackup-partsag
[root@linuxtechi ~]#
然后通过网络将这些分割文件转移到其他服务器,就可以合并成为一个单独的 tar 文件了,如下:
cat mybackup-partsa* > mybackup-2016-09-09.tgz