例如我有文件:
./otherfile1
./otherfile2
./excludethisfile
./folder1/otherfile
./folder1/excludethisfile
./folder2/otherfile
./folder2/excludethisfile
我想递归压缩所有文件但始终排除名为“excludethisfile”的文件
====
要回答帖子“如何压缩文件夹但排除.git子文件夹”是否回答了以下问题:
不,该帖子指的是从 zip 中排除单个子文件夹的一个非常简单的情况。
我的情况是排除可能出现在任何子文件夹中、多个位置的特定名称的文件,并且我想排除这些文件中的每一个,无论它们出现在哪里。
这也并不适用于排除特定扩展名的文件的情况(例如.o ),而是按名称(例如 filename)。
答案1
使用该--exclude
选项应该可以工作,首先进行“试运行”以显示要压缩的内容,
zip -sf -r file.zip . --exclude \*/excludethisfile
然后,当一切看起来不错时,
zip -r file.zip . --exclude \*/excludethisfile
在这种情况下,通配符*
将代表要排除的文件的目录路径。