ディレクトリ内のすべてのフォルダーを、元のフォルダー名を反映した各アーカイブの名前で個別に圧縮するコマンドを探しています。そんなこと知ってる
tar czvf example.tar.gz example/
フォルダ全体を圧縮します。ただし、一括アーカイブするコマンドは見つかりませんでした。そのようなコマンドはありますか?
ディレクトリ内のすべてのフォルダーを、元のフォルダー名を反映した各アーカイブの名前で個別に圧縮するコマンドを探しています。そんなこと知ってる
tar czvf example.tar.gz example/
フォルダ全体を圧縮します。ただし、一括アーカイブするコマンドは見つかりませんでした。そのようなコマンドはありますか?
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;
を使用したことに注意してください-maxdepth 1
。
ディレクトリ構造を検討してください。
.
|-- a
| `-- x
|-- b
`-- c
あなたがいなけれ-maxdepth 1
ば、a.tar.gz
とa/x.tar.gz
. a.tar.gz
x とその中のすべてのファイルが含まれます。a/x.tar.gz
x とそのファイルが含まれます。しかし、これが目標ではないと仮定すると、これはアイテムを x 内に 2 回格納します。
の外部で実行すると も作成される-mindepth 1
ため、同様に使用するように更新されました。example/
example.tar.gz
更新...およびbzip2の場合:
find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
for f in `find -mindepth 1 -maxdepth 1 -type d`; do
tar -czf $f.tar.gz $f
done
さて、これが私がアーカイブし、最大圧縮のためにbzip2で圧縮するために思いついた最後のコマンドです
find -mindepth 1 -maxdepth 1 -type d -exec tarcjf'{}'。tar.bz2'{}'\;
みんな、ありがとう!