zip错误 - 无所事事

use*_*876 8 bash shell

我尝试压缩给定目录中的所有文件夹.所以我写了这个

find /home/user/rep/tests/data/archive/* -maxdepth 0 -type d -exec zip -r "{}" \;
Run Code Online (Sandbox Code Playgroud)

但得到了

zip error: Nothing to do! (/home/user/rep/tests/data/archive/tmp.zip)

zip error: Nothing to do! (/home/user/rep/tests/data/archive/tmp_dkjg.zip)
Run Code Online (Sandbox Code Playgroud)

这是包含的内容

user@machine:~$ ls /home/aliashenko/rep/tests/data/archive/
tmp  tmp_dkjg  tmp_dsf
Run Code Online (Sandbox Code Playgroud)

Ben*_*rth 27

要创建 zip 文件:

  • 文件列表中,zip myZippedImages.zip alice.png bob.jpg carl.svg. 您需要指定两者

    • zip 文件(输出),以及
    • 您要压缩的文件(输入)。
  • 文件夹中,zip -r myZippedImages.zip images_folder


为了比 Alex 的答案更清楚,要创建 zip 文件,zip 至少需要 2 个参数。我怎么知道,因为当你使用 时man zip,你会得到它的手册页,其中一部分是:

zip  [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...]  [-b path]
       [-n suffixes] [-t date] [-tt date] [zipfile [file ...]]  [-xi list]
Run Code Online (Sandbox Code Playgroud)

当你zip在命令行中输入时,你会得到:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,请注意[zipfile list][zipfile [file ...]]。方括号表示某些内容是可选的。如果您不保存到 zip 文件,则list不需要该参数。

如果您想保存到 zip 文件中(选择该[zipfile list]选项,您还需要提供list,因为它位于方括号内。因此,我更喜欢 的输出zip而不是man zip。(手册页可能会令人困惑)


Ale*_*lon 6

问题是您没有为它将创建的zip文件提供名称.

find /home/user/rep/tests/data/archive/* -maxdepth 0 -type d -exec zip -r "{}" "{}" \;
Run Code Online (Sandbox Code Playgroud)

这将创建一个单独的压缩目录为每个子文件夹tmp tmp_dkjgtmp_dsf