我尝试压缩给定目录中的所有文件夹。所以我写了这个
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
答案 0 :(得分:6)
问题是您没有为它将创建的zip文件提供名称。
find /home/user/rep/tests/data/archive/* -maxdepth 0 -type d -exec zip -r "{}" "{}" \;
这将为每个子文件夹tmp
tmp_dkjg
和tmp_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