我找不到一种方法来压缩文件夹内的所有文件而不压缩文件夹本身
-tempfolder
--images
---1.jpg
---2.jpg
---3.jpg
我需要压缩图像文件夹中的所有文件,而无需在按照此答案(和其他答案)提取它们后创建文件夹,我确实尝试过这种方式,但没有成功 zip:参数列表太长(总共 80,000 个文件)
find images/ -mindepth 1 -maxdepth 1 | zip images/images.zip -@
当我从 zip 中提取文件时,它会生成包含所有文件的图像文件夹
答案1
尝试以下方法:
find images/ -mindepth 1 -maxdepth 1 | xargs -l 1000 zip images/images.zip
xargs 程序将从“|”管道获取标准输出并将其添加为命令行参数。该-l
选项将一次扩展的文件数限制为 1000 个。
编辑
对于海报来说,参数列表似乎太长了,因为文件夹路径被附加到每个文件,因此列表大小大大增加。
在他的案例中,解决方案是添加-j
或 参数--junk-paths
,仅存储文件的名称(丢弃路径),不添加目录名称。因此以下内容就足够了:
find images/ -mindepth 1 -maxdepth 1 | zip images/images.zip -@ -j