有一个包含大小为 2.4 Gb 的图像的文件夹。
任务是通过 SSH 将该文件夹存档到多个独立的 zip 存档。
我试过:
zip -r -s 512m archive.zip folder
此命令创建相关的 zip 存档:
archive.z01
archive.z02
archive.z03
archive.z04
archive.zip
但我需要为优化图像的“在线网络服务”创建完全独立的 zip 存档。此服务需要 zip 存档,大小不超过 2Gb。
您能否提出一个可行的解决方案?
操作系统:Linux
访问方式:SSH
感谢您的帮助。
最佳答案
这是一个用 bash 编写的简短脚本,可以解决这个问题:
#!/bin/bash
FILES=`ls *.jpg`
ZIP_PREFIX='archive'
INDEX='1'
MAX_SIZE='512'
for PICT_FILE in $FILES
do
ZIP_NAME=${ZIP_PREFIX}"_"${INDEX}".zip"
ARCH_SIZE=`du -m $ZIP_NAME | cut -f 1`
if [ $ARCH_SIZE -ge $MAX_SIZE ]; then
INDEX=`echo "$INDEX + 1" | bc`
fi
ZIP_NAME=${ZIP_PREFIX}"_"${INDEX}".zip"
zip $ZIP_NAME $PICT_FILE
done
MAX_SIZE 以 Mb 为单位设置
您可以将“FILES”中的命令替换为 find
或任何其他可以为您提供文件列表的命令
关于linux - 如何将大文件夹 (2.4 gb) 存档到多个独立的 zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43476445/