zip错误 - 无所事事

时间:2016-10-12 16:08:14

标签: bash shell

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

find /home/user/rep/tests/data/archive/* -maxdepth 0 -type d -exec zip -r "{}" \;

但得到了

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)

这是包含的内容

user@machine:~$ ls /home/aliashenko/rep/tests/data/archive/
tmp  tmp_dkjg  tmp_dsf

3 个答案:

答案 0 :(得分:6)

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

find /home/user/rep/tests/data/archive/* -maxdepth 0 -type d -exec zip -r "{}" "{}" \;

这将为每个子文件夹tmp tmp_dkjgtmp_dsf

创建单独的压缩目录

答案 1 :(得分:1)

如果要从文件列表创建 zipe文件,则需要指定zipfile和要压缩的文件。 例如zip myZippedImages.zip alice.png bob.jpg carl.svg

如果它们位于文件夹中,则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]

,当您在命令行中输入zip时,您将得到:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

在两种情况下,请注意[zipfile list][zipfile [file ...]]。方括号表示可选。如果您不保存到zipfile,则不需要list参数。

如果要保存到zipfile中(选择[zipfile list]选项,还需要提供list,因为它位于方括号内。因此,我更喜欢{ {1}},而不是zip。(手册页可能会造成混淆)

答案 2 :(得分:0)

如果在zip文件上使用zip命令,则会看到该错误。 确保您在所有zip版本文件上都不使用zip,否则请使用unzip