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

Komprimieren Sie jede Datei in einem Verzeichnis in eine eigene komprimierte Datei

Lösung 1:

In diesem Szenario macht es keinen Sinn, jede Datei in eine separate Tar-Datei zu stecken. Sie können gzip verwenden um sie direkt zu komprimieren:

gzip *

ergibt file1.out.gz , file2.out.gz usw.

Sie würden tar verwenden nur wenn Sie ein komprimiertes Archiv als einzelne Datei benötigen würden.

Wenn Sie für jede Datei ein Tar-Archiv benötigen, können Sie es folgendermaßen erstellen:

for i in *; do tar -czf $i.tar.gz $i; done

Lösung 2:

Um auf der Antwort von @SvenW aufzubauen (die nur im aktuellen Verzeichnis funktioniert), können Sie auch

verwenden, wenn Sie eine RIESIGE Anzahl von Dateien haben oder dies in einer rekursiven Verzeichnisstruktur tun möchten
find . -type f -exec gzip \{\} \;

und wenn Sie die Ausgabe in einem anderen Verzeichnis ablegen müssen (in diesem Beispiel ../target ) und die Originale nicht entfernen möchten, können Sie Folgendes tun:

find . -type f -print | while read fname ; do
    mkdir -p "../target/`dirname \"$fname\"`"
    gzip -c "$fname" > "../target/$fname.gz"
done

Linux
  1. Wie kann man jede versteckte Datei außer dem aktuellen und dem übergeordneten Verzeichnis globbeln?

  2. Den Inhalt einer Datei in die Zwischenablage kopieren, ohne den Inhalt anzuzeigen?

  3. Wie komprimiert man mehrere Dateien in ein .xz-Archiv?

  4. So komprimieren/dekomprimieren Sie unter Linux

  5. Aktualisieren einer einzelnen Datei in einem komprimierten tar

So erstellen Sie eine Tar-Gz-Datei

So tarieren Sie bestimmte Dateitypen (Erweiterungen) in einem Verzeichnis

Linux-tar-Befehl zum Komprimieren und Extrahieren von Dateien

Wie komprimiert man mehrere Ordner, jeden in ein eigenes Zip-Archiv?

Wie gzipe ich mehrere Dateien in eine gz-Datei?

So konvertieren Sie eine TAR-Datei in eine ISO-Datei