linux - 如何将大文件夹 (2.4 gb) 存档到多个独立的 zip 存档

标签 linux ssh zip

有一个包含大小为 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/

相关文章:

php - 您可以在远程服务器上解压缩 .zip 文件吗?

linux - 如何将文件夹添加到现有 zip 文件中的子文件夹

c++ - 在 Linux 中使用共享库执行二进制文件

c - 读写器 : one reader at a time, 和写入器优先级

c - 如何禁止从 Linux 内核模块访问键盘和鼠标?

Ruby 压缩流

python - 无法将文本附加到 python 中的文件

ssl - 为 SSH 生成 SSL key 对时,您可以使用的最大位数 (-b) 是多少?

mysql - 如何使用 ssh 导出 mysql 数据库?

python - 在 Vagrant 中运行 Python 脚本