gpt4 book ai didi

unix - 使用 tar 时排除目录

转载 作者:行者123 更新时间:2023-12-02 04:41:01 27 4
gpt4 key购买 nike

我使用下面的命令来创建一个tar.gz

tar -pczf domain.com.tar.gz  /var/www/domain.com/public_html/www/ 

tar.gz 文件包含以下文件夹

var-->www-->domain.com-->public_html-->www-->then the content of www

我希望 tar.gz 文件只包含 www 的内容而不包含任何文件夹。我尝试使用 -C 但我得到了

Cowardly refusing to create an empty archive error

tar -pczf domain.com.tar.gz -C  /var/www/domain.com/public_html/www/ 

编辑 1我添加了 . 但随后 exclude 不再起作用,所有文件的文件名中都有一个 ./

存档中的文件名变成.\file.txt

tar -pczf domain.com.tar.gz -C  /var/www/domain.com/public_html/www/ . --exclude='/var/www/domain.com/public_html/www/tmp/*'

实例

tar --exclude='tmp/cookies/*' --exclude='tmp/logs/*' -pczf filterbypass.me.tar.gz -C /var/www/filterbypass.me/public_html/www .

我希望 tar,gz 只包含我在 www 中的文件,而不是文件夹 + 文件名中不包含 ./

最佳答案

在阅读了针对不同版本的所有这些好的答案并为自己解决了问题之后,我认为有一些非常重要的小细节,但对于 GNU/Linux 的一般使用而言却很少见,它们不是' 压力够大,值得的不仅仅是评论。

因此,我不会尝试回答每种情况下的问题,而是在出现问题时尝试注册去哪里

注意事项非常重要:

  1. 选项的顺序很重要:将 --exclude 放在要备份的文件选项和目录之前和之后是不一样的。这至少对我来说是出乎意料的,因为根据我的经验,在 GNU/Linux 命令中,选项的顺序通常无关紧要。
  2. 不同的 tar 版本需要此选项的顺序不同: 例如,@Andrew's answer表示在 GNU tar v 1.26 和 1.28 中,排除项排在最后,而在我的情况下,对于 GNU tar 1.29,则是另一种方式。
  3. 尾部斜杠很重要:至少在 GNU tar 1.29 中,它不应该是任何

在我的例子中,对于 Debian stretch 上的 GNU tar 1.29,有效的命令是

tar --exclude="/home/user/.config/chromium" --exclude="/home/user/.cache" -cf file.tar  /dir1/ /home/ /dir3/

引号并不重要,有或没有引号都有效。

我希望这对某人有用。

关于unix - 使用 tar 时排除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com