Xairro.com

Login
Schliessen

Willkommen im Xairroversum! Ein kostenloser Account bei uns bietet dir mehrere Vorteile. Welche das genau sind, kannst du in der Tour erfahren. Viel Spaß!

Login

Register

Bash-Skript gesucht

Hallo, ich möchte gerne mit einem Bashskript ein paar Dateien zippen. Ist mit "zip" ja kein Problem, allerdings kommt jetzt ein kleiner Zusatz: Ich möchte, dass das Archiv aus maximal 100 Dateien besteht und das bei erreichen dieser Grenze ein neues Archiv angefangen wird...

Allerdings bin ich nicht so fit im Shellscripting. Kann mir da jemand helfen?

Ich habe schonmal etwas rausgefunden, vllt hilft das: - Man kann dem ZIP-Ding die Dateien, die gezippt werden sollen einfach per STDIN und damit per Pipe übergeben. (echo xyz | zip -@) - Eine Schleife, die das Ergebnis von ls abgrast mit zusätzlicher Zählvariabel stelle ich mir vor

Bei der Umsetzung scheiterts bei mir einfach kläglich... Ich wäre euch sehr verbunden, wenn mir geholfen werden könnte! Danke!


Schokolade! Ich bin root, ich darf das.

Rating: 0 Permalink

Im Prinzip habe ich eine Lösung gefunden:

#!/bin/bash

dir=~/my/dir
thres=100

dir=${dir%/}
echo -n > temp
j=0
k=1
for i in $(ls ${dir});
do
        if [ ${j} -ge ${thres} ]
        then
                j=0
                cat temp | zip -@ files${k}.zip
                k=`expr ${k} + 1`
                echo -n > temp
        fi
        echo ${dir}"/"${i} >> temp
        j=`expr ${j} + 1`
done
cat  temp| zip -@ files${k}.zip
rm temp

Problem ist halt nur, dass die Dateinamen keine Leerzeichen und so enthalten dürfen, aber für Linux-Menschen sollte das ein eher geringes Problem sein^^


Schokolade! Ich bin root, ich darf das.

Rating: 0 Permalink