GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So komprimieren Sie alle Dateien in allen Unterverzeichnissen in eine komprimierte Datei in Bash

Es gibt viele Komprimierungsmethoden, die rekursiv auf der Befehlszeile arbeiten, und es ist gut zu wissen, wer die Endzielgruppe ist.

d.h. wenn es an jemanden gesendet werden soll, der Windows ausführt, wäre zip wahrscheinlich am besten:

zip -r file.zip folder_to_zip

unzip filenname.zip

für andere linux-benutzer oder sich selbst ist tar großartig

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/myusername/etc/passwd

erstellt

unsicher, ob alle Versionen von tar dies tun:

 Removing leading `/' from member names

Der Beitrag von @amitchhajer funktioniert für GNU tar. Wenn jemand diesen Beitrag findet und ihn benötigt, um an einem NON GNU zu arbeiten System können sie Folgendes tun:

tar cvf - folderToCompress | gzip > compressFileName

So erweitern Sie das Archiv:

zcat compressFileName | tar xvf -

tar -zcvf compressFileName.tar.gz folderToCompress

alles in folderToCompress geht an compressFileName

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

verwenden
Linux
  1. So zeigen Sie den Inhalt komprimierter Dateien unter Linux an

  2. Wie überprüfe ich die Teilzeichenfolge in Shell Script Bash?

  3. Wie man alle oder bestimmte Dateien in Linux gzippt

  4. So fügen Sie den Inhalt mehrerer Dateien in eine Datei ein

  5. Wie teilt man eine Textdatei in mehrere *.txt-Dateien auf?

So lesen Sie Dateien Zeile für Zeile in Bash

Alles über Tar-Dateien und wie man Dateien in Linux mit Terminal tart und enttarnt

So entfernen Sie alle Dateien in einem Ordner außer einer bestimmten Datei in Linux

So tarieren Sie bestimmte Dateitypen (Erweiterungen) in einem Verzeichnis

So führen Sie unter Linux mehrere PDF-Dateien zu einem PDF zusammen

So verbinden/verschmelzen Sie mehrere Audiodateien zu einer in Linux