![zip:参数列表太长,如何制作没有子文件夹的 zip?](https://linux22.com/image/1622090/zip%EF%BC%9A%E5%8F%82%E6%95%B0%E5%88%97%E8%A1%A8%E5%A4%AA%E9%95%BF%EF%BC%8C%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E6%B2%A1%E6%9C%89%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%20zip%EF%BC%9F.png)
我找不到一种方法来压缩文件夹内的所有文件而不压缩文件夹本身
-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