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

Bz2 jede Datei in einem Verzeichnis

Um auf einem Multi-Core-Mac bzip2 zu erstellen, können Sie den folgenden Befehl ausführen (wenn Sie sich in dem Ordner befinden, den Sie bzip möchten)

find . -type f -print0 | xargs -0 -n1 -P14 /opt/local/bin/bzip2

Dadurch wird jede Datei rekursiv in dem Ordner gezippt, in dem Ihr Terminal 14 CPU-Kerne gleichzeitig verwendet.

Sie können durch Bearbeiten anpassen, wie viele Kerne verwendet werden sollen

 -P14

Wenn Sie nicht wissen, wo sich die bzip2-Binärdatei befindet, können Sie den folgenden Befehl eingeben, um es herauszufinden

which bzip2

Die Ausgabe dieses Befehls ist das, was Sie ersetzen können

/opt/local/bin/bzip2

mit


Wenn sich alle Dateien in einem einzigen Verzeichnis befinden, dann:

bzip2 *

Reicht. Ein robusterer Ansatz ist:

find . -type f -exec bzip2 {} +

Das wird jede Datei im aktuellen Verzeichnis und seinen Unterverzeichnissen komprimieren und wird sogar funktionieren, wenn Sie Zehntausende von Dateien haben (die Verwendung von * bricht ab, wenn es zu viele Dateien im Verzeichnis gibt).

Wenn Ihr Computer über mehrere Kerne verfügt, können Sie dies weiter verbessern, indem Sie mehrere Dateien gleichzeitig komprimieren. Wenn Sie beispielsweise 4 Dateien gleichzeitig komprimieren möchten, verwenden Sie:

find . -type f -print0 | xargs -0 -n1 -P4 bzip2

Ich habe das folgende Skript zu bzip2 geschrieben Dateien in ein anderes Verzeichnis

#!/bin/bash
filedir=/home/vikrant_singh_rana/test/*

for filename in $filedir; do
name=$(basename "$filename" | sed -e 's/\.[^.]*$//')
bzip2 -dc $filename > /home/vikrant_singh_rana/unzipfiles/$name
done

mein Beispieldateiname war wie

2001_xyz_30Sep2020_1400-30Sep2020_1500.csv.bz2

Ich war nicht in der Lage, einen direkten Befehl zu bekommen, also habe ich das gemacht. Dies funktioniert wie erwartet gut.


Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Verschieben Sie Dateien im Linux-Terminal

  3. So komprimieren und dekomprimieren Sie .bz2-Dateien in Linux mit dem bzip2-Befehl

  4. GZip jede Datei separat

  5. Extrahieren Sie tar den tar.bz2-Dateifehler

So komprimieren und dekomprimieren Sie eine .bz2-Datei unter Linux

Cp-Befehl in Linux (Dateien kopieren)

So benennen Sie eine Datei (en) in Linux um

Dateimanager vs. FTP

Übertragen Sie Dateien mit WinSCP

So komprimieren Sie eine Datei unter Linux