• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Unterverzeichnisse einzeln packen

Ich habe ein Verzeichnis mit ca. 100 Unterverzeichnissen in denen jeweils ein paar Dateien liegen. Diese Unterverzeichnisse möchte einzeln als zip komprimieren, wobei der Dateiname des Zip jeweils dem Namen des Unterverzeichnisses entsprechen soll. Damit würde ich dann also 100 einzelne Zip-Dateien bekommen.

Ich habe schon gegoogelt und mit gzip und bzip2 ausprobiert, aber habe noch keine Lösung gefunden.

Weiß hier jemand eine Lösung?
 
A

Anonymous

Gast
gzip zip oder bzip2 sind da ehr ungeschickt, obwohl es zumindestens mit zip auch gehen sollte. Nimm einfach tar dazu.
In etwa so hier
Code:
cd /verzeichnis      #in das Verzeichnis in dem diese Verzeichnisse alle liegen.
for i in $(find . -mindepth 1 -maxdepth 1 -type d)
do
   tar -czf ${i}.tgz $i
done
Das erstellt dir gezipte Tarfiles von all deinen Verzeichnissen. auspacken geht mit
Code:
 tar -xzf verzeichnis.tgz
Wenn du die Dateien wo anders hin erstellen willst, dann wird es etwas komplizierter, da von den Verzeichnisnamen erst noch "./" vorne wegeschnitten werden muss. dann etwa so hier.

Code:
for i in $(find . -mindepth 1 -maxdepth 1 -type d)
do
  tar -czf /home/backup/$(basename ${i}).tgz $i 
done

(Leer und Sonderzeichen vermeiden sind im Moment in den Befehlen nicht berücksichtigt.)


robi
 
tar hilft mir nicht da die Dateien von einem Programm gelesen werden müssen das nur zip-Dateien entpacken kann. Ich habe das obige Script daher modifiziert:

Code:
cd "Pfad"
for i in $(find . -mindepth 1 -maxdepth 1 -type d)
do
	zip -9 -D ${i} ${i}/*
done


Und so klappte es. Vielen Dank für die Hilfe!
 
Oben