Ausnahme-Datei beim Packen von Verzeichnissen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
RoyalKnight
Beiträge: 58
Registriert: 14.10.2005 10:07:54
Kontaktdaten:

Ausnahme-Datei beim Packen von Verzeichnissen

Beitrag von RoyalKnight » 11.11.2008 23:03:34

Ich bin gerade dabei ein Shellskript zu schreiben. Es müssen Ordner aus einem Verzeichnis einzeln gepackt werden, allerdings soll es Ausnahmen geben, die in einer Datei festgelegt werden können und nicht gepackt werden sollen.
Aktuell sieht es so aus:

Code: Alles auswählen

for DIR in `ls /var/www/`; do
  tar czf /backup/$DIR.tgz /var/www/$DIR
done;
Nun könnte ich die externe Datei einlesen, diese auch Zeile für Zeile durchlaufen und prüfen ob der aktuelle Ordner nicht enthalten ist und dann entsprechend packen. Allerdings finde ich eine Schleife in der Schleife nicht so schön und auch wenig performant, bestimmt gibt es auch eine schönere Lösung?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Ausnahme-Datei beim Packen von Verzeichnissen

Beitrag von rendegast » 12.11.2008 03:39:48

Code: Alles auswählen

...
tar  -X exclude-Datei ....
...

Code: Alles auswählen

Exclude_Ausdruck="nein1|nein2|nein3|...."
for DIR in $(ls -1 /var/www | egrep -v "$Exclude_Ausdruck") ; do
   tar ....

Code: Alles auswählen

find /var/www -maxdepth 1 -mindepth 1 -type d ..... /var/www/nein1 -prune -o .....-exec tar czf {}.tgz {} \;
Klappt so nicht wegen der Slashes in "{}", nur als Idee.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
RoyalKnight
Beiträge: 58
Registriert: 14.10.2005 10:07:54
Kontaktdaten:

Re: Ausnahme-Datei beim Packen von Verzeichnissen

Beitrag von RoyalKnight » 12.11.2008 21:21:19

rendegast hat geschrieben:

Code: Alles auswählen

Exclude_Ausdruck="nein1|nein2|nein3|...."
for DIR in $(ls -1 /var/www | egrep -v "$Exclude_Ausdruck") ; do
   tar ....
Genau das habe ich gesucht - vielen Dank!

Antworten