何百ものサブディレクトリを持つディレクトリがあります。各サブディレクトリをtarおよび圧縮し、結果ファイルの名前を指定したいと思います<currentDirName>.tar.bz2
。
私はすでにこれを行いました。
find ./dir -type f -print0 | xargs -0 -n1 -P100 bunzip2
一度に100個のファイルを解凍します。 (私は海洋モデリングをしているので、私のコンピュータはクワッドコアが多くて非常に強力です。)圧縮されたアーカイブファイルの動的な命名に関する情報を含めながら、上記のようなことをする方法がわかりません。私はすべての人のためにそれをしたくありませんtar cfj dir.tar.bz2 dir
。
上記のBunzipコマンドのように、一度に100以上を実行できるように、findまたはパラレルを介して自動的に各ディレクトリ名をtarファイル名として使用できますか?
ご意見ありがとうございます。
....ピーター
答え1
次bash
の行は、おおよそ説明するタスクを実行して、各ディレクトリを独自のtarballに配置します。
for d in dir/*/; do { tar -cj "$d" > "${d%/}.tar.bz2" ; } & done ; while [ "$(jobs)" ] ; do fg &>/dev/null ; done ; echo done