为什么在我制作 .zip 文件时排除特定文件夹不起作用?

sta*_*ack 4 command-line zip

我想制作一个目录的 zip 文件,除了其中的特定文件夹。这是我的命令:

zip -r -x 'public/images/' tw.zip /var/www/html/m4/
Run Code Online (Sandbox Code Playgroud)

我想制作一个 zip,/var/www/html/m4/除了public/images/其中存在的文件夹。但是我的命令会抛出此错误消息:

zip error: Invalid command arguments (nothing to select from)
Run Code Online (Sandbox Code Playgroud)

出了什么问题,我该如何解决?

Rav*_*ina 6

zip 手册页说:

zip ... [zipfile [file ...]] [-xi list]
Run Code Online (Sandbox Code Playgroud)

因此,您要压缩的 zip 文件名和结构路径应位于排除列表之前。

这部分命令将无法正确应用:

-x 'public/images/'
Run Code Online (Sandbox Code Playgroud)

因为它没有以 zip 识别的方式指定文件。

这将起作用:

zip -r my.zip /var/www/html/m4/ -x /var/www/html/m4/public/images/\*
Run Code Online (Sandbox Code Playgroud)
  • 如您所知,-r是递归的。
  • -x用于排除(文件),
  • \before*用于避免 shell 扩展文件名;我们把它留给zip.