压缩文件夹时排除某些文件夹

3
我将尝试备份我的www文件夹,但是像www里面的.config这样的隐藏文件夹也会被添加到备份中。我想要排除名为“backups”的文件夹以及所有以点开始的文件夹(和文件)。
问题在于它会将所有隐藏的文件夹(如.config)都复制到zip文件中。
当前代码:
zip -r /var/www/backups/site/$(date +\%Y-\%m-\%d-\%H-\%M).zip /var/www -x "*backups*" "*.*" "*/.*"

你没有说出你为什么对你现有的代码不满意。此外,"." 不是以点开头的文件或文件夹。 - 4ae1e1
已在AskUbuntu上发布:http://askubuntu.com/questions/607791/zip-folder-exclude-some-folders - John1024
@4ae1e1 显然忘记了,现在已经添加了。 - user3740791
我无法重现(尽管我不在Ubuntu上)。您能否创建一个更简单的示例目录结构,并向我们展示zip归档中确切的内容? - 4ae1e1
2个回答

6
这对你应该有效。
zip -r --exclude=*backups* --exclude=*/.* /var/www/backups/site/$(date +\%Y-\%m-\%d-\%H-\%M).zip /var/www

5

使用Linux的find命令并加上排除标志,然后将其管道传输到zip。

以下命令将排除当前目录下包含关键词“backups”或路径中包含“/.”的文件,并将文件传输到zip。

    find . | grep -v "\(backups\|/\.\)" | xargs zip archive.zip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接