35

私はこのように見えるいくつかのディレクトリを持っています:

dir1/
  |_foo.txt
  |_bar.txt
dir2/
  |_qux.txt
  |_bar.txt

このディレクトリごとに、その中のファイルを* .gz形式に圧縮してから、圧縮されていないファイルを削除します。だから最後に私たちはこのようなものを手に入れたいと思っています:

 dir1/
   |_foo.gz
   |_bar.gz
 dir2/
   |_qux.gz
   |_bar.gz

それを行う簡単なUnixの方法はありますか?

4

3 に答える 3

48
gzip */*.txt

ただし、gzipは元のファイル名を知るために使用するため、各ファイルの拡張子は.txt.gzになります。

于 2009-04-25T13:34:11.830 に答える
13

gzip -r dir1 dir2

于 2009-04-25T13:38:03.223 に答える
10

サブディレクトリがある場合でも、以下は機能します。例:dir1 / dir2 / ... / foo.txt

find . -type f -name "*.txt" -exec gzip {} \;
于 2009-04-27T07:29:28.520 に答える