在打包时如果源文件包含绝对路径,打包的文件重新解压也会包含有目录信息,所以如果不需要目录信息需要使用 -C 参数。
示例 1:
将 /opt/sysin/a.log 文件打包到当前同目录下,不要带路径,即解压后只有 a.log 单个文件。
tar -zcvf /opt/sysin/a.tar.gz -C/opt/sysin/ a.log #注意:-C 与文件夹之间没有空格,文件夹与文件中间有空格)
示例 2:
将 /root/sysin/ 下面的所有文件打包,不要包含 sysin 目录
tar -zcvf sysin.tgz -C/root/sysin/ *
示例 3:
将 /root/sysin/ 下面的所有文件打包,要包含 sysin 目录
tar -zcvf sysin.tgz -C/root/ sysin/ #目录尾部/可以省略 = tar -zcvf sysin.tgz -C/root sysin
或者
tar -zcvf sysin.tgz -C/root/sysin/ . #注意后面是 . 表示当前目录
示例 4:
zsh 全局配置文件备份,压缩多个文件和文件夹,不包含路径
#!/bin/sh
date=$(date +%Y%m%d)
rm -f /etc/oh-my-zsh/.git/objects/pack/*
tar -zcvf zsh-config-linux-etc-"$date".tgz .oh-my-zsh/ .zshrc .vimrc zsh-backup.sh -C/etc/ oh-my-zsh/
#最后一个文件夹是 /etc/oh-my-zsh 不要包含 /etc/ 路径