简体   繁体   中英

How to archive large folder (2.4 gb) to multiple separated independent zip-archives

There is a folder with images with the size of 2.4 Gb.

The task is to archive via SSH this folder to multiple separated independent zip-archives.

I have tried:

zip -r -s 512m archive.zip folder

This command creates dependent zip-archives:

archive.z01
archive.z02
archive.z03
archive.z04
archive.zip

But I need to create exactly independent zip-archives for "online web service" which optimizes images. This service requires zip archive and size up to 2Gb.

Could you please suggest a working solution?

OS: Linux

Access via: SSH

Thanks for help.

Here's a short script in bash that will do the trick:

#!/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 is set in Mb You can replace command in 'FILES' with find or anything else that will provide you with the list of files

the.Legend, thanks for the script.

Here is few notices:

1. `du -m $ZIP_NAME | cut -f 1`

Returns 1 for files with the size less then 1 Mb.

2. INDEX=`echo "$INDEX + 1" | bc

Does not work in bash in linux.

Here is updated script which was tested in linux:

#!/bin/bash

FILES=`find ./image/`

ZIP_PREFIX='example.com.image'
INDEX='1'

MAX_SIZE='512000' # 512 Mb

for PICT_FILE in $FILES
do
    ZIP_NAME=${ZIP_PREFIX}"_"${INDEX}".zip"
    ARCH_SIZE=`du -k $ZIP_NAME | cut -f 1`

    # echo $ARCH_SIZE
    # echo $MAX_SIZE

    if [  $ARCH_SIZE -ge $MAX_SIZE  ]; then
            INDEX=$((INDEX + 1))
    fi

    ZIP_NAME=${ZIP_PREFIX}"_"${INDEX}".zip"

    zip $ZIP_NAME $PICT_FILE

done

The result is:

http://example.com/example.com.image_1.zip [500Mb]  
http://example.com/example.com.image_2.zip [500Mb]  
http://example.com/example.com.image_3.zip [500Mb]  
http://example.com/example.com.image_4.zip [227Mb]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM