
Ich habe dieses Problem: Ich muss alle Dateien mit einem bestimmten Namen finden und sie alle in einer einzigen ZIP-Datei komprimieren.
Ich habe Dinge ausprobiert wie
find . -not -name "*bz2" -name "myname*" -exec bzip2 test.bz2 {} +;
and
find . -not -name "*bz2" -name "myname*" -exec bzip2 test.bz2 {} /;
und viele andere, aber sie werden immer einzeln komprimiert. Es muss eine BZIP-Datei sein.
Antwort1
Bzip kann nicht mehrere Dateien zu einem einzigen Archiv zusammenfassen (wie ZIP). Bzip dient nur zum Komprimieren einer einzelnen Datei (wie Gzip).
Wenn Sie mehrere Dateien in ein komprimiertes Archiv aufnehmen möchten, erstellen Sie zunächst mit Tar ein Archiv mit mehreren Dateien und komprimieren Sie dann dieses einzelne Archiv.
Du könntest benutzen:
find . -not -name "*bz2" -name "myname*" | xargs tar -jcvf archive.tar.bz2
xargs
fügt alle Dateinamen ein, die nach dem Tar-Befehl gefunden werden (die normale Syntax für Tar ist tar -jcvf archivename.tar.bz2 file1 file2 file3 ...
).