it-swarm.com.de

tar/gzip ohne bestimmte Dateien

Ich habe ein Verzeichnis mit vielen Unterverzeichnissen. In einigen dieser Unterverzeichnisse habe ich Dateien mit der Erweiterung *.asc und einige mit der Erweiterung *.xdr.

Ich möchte eine SINGLE-Tarball/gzip-Datei erstellen, die die Verzeichnisstruktur beibehält, jedoch alle Dateien mit der Erweiterung *.xdr ausschließt.

Wie kann ich das machen?

Ich habe so etwas wie find . -depth -name *.asc -exec gzip -r9 {} + gemacht, aber dadurch wird jede *.asc-Datei einzeln gezippt, was nicht das ist, was ich tun möchte.

13
user1654183

Sie müssen die Option --exclude verwenden:

tar -zc -f test.tar.gz --exclude='*.xdr' *

31
Allolex

gzip behandelt Dateien immer einzeln. Wenn Sie ein gebündeltes Archiv wünschen, müssen Sie zuerst die Dateien tarieren und dann das Ergebnis gzipen. Daher erhalten Sie eine .tar.gz-Datei oder kurz .tgz.

Um eine bessere Kontrolle über das, was Sie tun, zu erhalten, können Sie find die Dateien zuerst mit dem Befehl, den Sie bereits gepostet haben (mit -print vom gzip-Befehl), in eine Datei einfügen und diese Datei (= filelist.txt) zur Anweisung verwenden tar mit was zu archivieren

tar -T filelist.txt -c -v -f myarchive.tar
1
cars10m