Bash: kleines Skript zum zippen

DeluXe

Funkjoker
Tag zusammen,

irgendwie stehe ich gerade auf dem Schlauch..

Ich habe folgende Ordnerstruktur:
Code:
- files
-- foo
-- bar
-- zip.sh

Nun möchte ich mit Hilfe von ./zip.sh * alle Ordner in files in einzelne Archive packen, sprich das ich dann ein bar.zip und ein foo.zip erhalte.
Jedoch wird mir nur ein bar.zip erstellt, von foo.zip weit und breit nichts zu sehen.

Kann mir bitte jemand sagen was an den paar Zeilen falsch ist?
Code:
#!/bin/bash
#
# param
# 1. source

files=$1

for file in $files
do
        echo "zipping $file ...."
        /usr/bin/zip -r "$1.zip" "$1"
        echo ""
done

Danke schonmal. :)
 
Und damit der Thread nicht vollkommen vom Sinn befreit hier rum gurkt, noch die "fertige" Lösung.

Ist nicht toll, bestimmt auch sehr Fehleranfällig, aber mir reicht es aus, um die paar Ordner zu zippen. ;)

Code:
#!/bin/bash
#
# param
# 1. source

skip=0
find "$1" -maxdepth 1 -type d |while read file;
do
        if [ $skip -eq 0 ]
        then
                skip=1
        else
                echo "zipping $file ...."
                /usr/bin/zip -r "$file.zip" "$file" > /dev/null
        fi
done
(Da find als erstes Ergebnis den root-Directory ausgibt, wird der erste Durchgang einfach mit Hilfe von skip übersprungen. WIe gesagt, nicht toll das ganze, nur funktionell.)
 

Neue Beiträge

Zurück