it-swarm.com.de

So komprimieren Sie alle Dateien in allen Unterverzeichnissen in einer komprimierten Datei in Bash

Mögliches Duplikat:
eine Reihe von Verzeichnissen komprimieren und eine tar-komprimierte Datei erstellen

Dieser Beitrag beschreibt, wie Sie jede Datei einzeln in einer Verzeichnisstruktur gzipen. Ich muss jedoch etwas anderes tun. Ich muss eine große gzip-Datei für alle Dateien in einem bestimmten Verzeichnis erstellen. Ich muss auch in der Lage sein, den Ausgabedateinamen für die komprimierte Datei (z. B. files.gz) anzugeben und die alte komprimierte Dateidatei zu überschreiben, falls bereits eine vorhanden ist.

187
Doug
tar -zcvf compressFileName.tar.gz folderToCompress

alles in folderToCompress wird nach compressFileName verschoben

Bearbeiten: Nach Überprüfung und Kommentaren wurde mir klar, dass Leute ohne Erweiterung möglicherweise mit compressFileName verwechselt werden. Wenn Sie möchten, können Sie die Erweiterung .tar.gz (wie vorgeschlagen) mit compressFileName verwenden

368
amitchhajer

es gibt viele Komprimierungsmethoden, die rekursiv über die Befehlszeile funktionieren. Es ist gut zu wissen, wer das Endpublikum ist.

d.h. wenn es an jemanden gesendet werden soll, der Windows ausführt, ist Zip wahrscheinlich das Beste:

Zip -r file.Zip folder_to_Zip

unzip filenname.Zip

für andere linuxnutzer oder dein selbst ist tar super

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

Man muss vorsichtig sein mit Teer und wie Dinge geteert/extrahiert werden, zum Beispiel wenn ich renne

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/ home/meinbenutzername

tar -xvzf passwd.tar.gz

dadurch wird/home/meinbenutzername/etc/passwd erstellt

unsicher, ob alle Versionen von tar dies tun:

 Removing leading `/' from member names
57
Vahid

@amitchhajers Beitrag funktioniert für GNU tar. Wenn jemand diesen Beitrag findet und benötigt, um auf einem NON GNU -System zu arbeiten, kann er dies tun:

tar cvf - folderToCompress | gzip > compressFileName

So erweitern Sie das Archiv:

zcat compressFileName | tar xvf -
18