在打包时如果源文件包含绝对路径,打包的文件重新解压也会包含有目录信息,所以如果不需要目录信息需要使用 -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/ 路径