我正在制作一个目录的压缩包。
我用这个命令排除某个文件夹
zip -r myzip.zip /home/test -x share/\*
当我使用此命令时,它仍然会扫描该文件夹。它有许多子文件夹,所以我不希望它浪费时间扫描所有内容,即使我排除了它。它还抛出大量 zip 警告:名称不匹配,因为它有许多符号链接。
有没有一种方法可以在不每次都扫描所有内容的情况下进行压缩?
答案1
从手册页:
-y
--symlinks
对于 UNIX 和 VMS(V8.3 及更高版本),将符号链接存储在 zip 存档中,而不是压缩和存储链接引用的文件。这可以避免存档中包含多个文件副本,因为 zip 会递归目录树并直接通过链接访问文件。
答案2
您需要包含要排除的目录的完整路径。如果它位于/home/test
:
zip -r myzip.zip /home/test -x /home/test/share/\*
如果在其他地方:
zip -r myzip.zip /home/test -x /home/test/path/to/share/\*