
特定の名前を持つすべてのファイルを検索し、それらすべてを 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 ...
)。