フォルダ内のファイルを再帰的に bzip2 して単一の bz2 ファイルにする方法

フォルダ内のファイルを再帰的に bzip2 して単一の bz2 ファイルにする方法

特定の名前を持つすべてのファイルを検索し、それらすべてを 1 つの zip ファイルに圧縮する必要があるという問題があります。

私は次のようなことを試しました

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} +;

and

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} /;

他にもたくさんありますが、常に別々に圧縮されます。bzip ファイルである必要があります。

答え1

Bzip は複数のファイルを 1 つのアーカイブに連結することはできません (ZIP のように)。Bzip は単一のファイルを圧縮するためだけのものです (Gzip のように)。

圧縮されたアーカイブに複数のファイルを含める場合は、まず Tar を使用して複数のファイルのアーカイブを作成し、次にその単一のアーカイブを bzip します。

次のようなものが使えます:

 find . -not -name "*bz2" -name "myname*" | xargs tar -jcvf archive.tar.bz2 

xargs見つかったすべてのファイル名を Tar コマンドの後に配置します (tar の通常の構文は ですtar -jcvf archivename.tar.bz2 file1 file2 file3 ...)。

関連情報