在 linux 操作系统中,使用 tar 打包绝对路径文件时如何才能避免压缩包中写入完整路径
在 Linux 中使用 tar 打包一个路径时,如果该路径是 绝对路径(/ 开头),tar 会将完整目录结构写进压缩包
sudo tar -czf apache2.tar.gz /etc/apache2
tar: Removing leading `/' from member names
# tar 会自动移除前导 /,但完整路径结构仍然会被保留下来。
方法一:使用相对路径打包
进入 /etc 目录后再执行 tar,这样压缩包中只包含:apache2/...,不会有 /etc/ 前缀。
cd /etc
sudo tar -czf apache2.tar.gz apache2
方法二:使用 tar 的 -C 选项
-C的作用是**:在执行打包时,临时切换到某个目录进行操作。
这种方法既可以解决绝对路径打包会写入完整路径,也能解决使用相对路径打包必须进入指定路径的问题。
所以即使不在/etc/ 目录下,也可以这样进行打包:
# tar 会先进入 /etc 目录,再将 apache2 放入包里。
sudo tar -czf apache2.tar.gz -C /etc apache2
浙公网安备 33010602011771号