0

ディレクトリ内のすべてのフォルダーを、元のフォルダー名を反映した各アーカイブの名前で個別に圧縮するコマンドを探しています。そんなこと知ってる

tar czvf example.tar.gz example/

フォルダ全体を圧縮します。ただし、一括アーカイブするコマンドは見つかりませんでした。そのようなコマンドはありますか?

4

3 に答える 3

1
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;

を使用したことに注意してください-maxdepth 1

ディレクトリ構造を検討してください。

.
|-- a
|   `-- x
|-- b
`-- c

あなたがいなけれ-maxdepth 1ば、a.tar.gza/x.tar.gz. a.tar.gzx とその中のすべてのファイルが含まれます。a/x.tar.gzx とそのファイルが含まれます。しかし、これが目標ではないと仮定すると、これはアイテムを x 内に 2 回格納します。

の外部で実行すると も作成される-mindepth 1ため、同様に使用するように更新されました。example/example.tar.gz

更新...およびbzip2の場合:

find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
于 2009-09-20T20:14:20.320 に答える
1
for f in `find -mindepth 1 -maxdepth 1 -type d`; do
    tar -czf $f.tar.gz $f
done
于 2009-09-20T20:16:53.610 に答える
0

さて、これが私がアーカイブし、最大圧縮のためにbzip2で圧縮するために思いついた最後のコマンドです

find -mindepth 1 -maxdepth 1 -type d -exec tarcjf'{}'。tar.bz2'{}'\;

みんな、ありがとう!

于 2009-09-21T00:34:41.987 に答える