次のようなディレクトリがいくつかあります。
dir1/
|_foo.txt
|_bar.txt
dir2/
|_qux.txt
|_bar.txt
このディレクトリごとに、その中のファイルを* .gz形式に圧縮してから、圧縮されていないファイルを削除します。最後に、次のようなものを取得したいと思います。
dir1/
|_foo.gz
|_bar.gz
dir2/
|_qux.gz
|_bar.gz
それを行う簡単なUnixの方法はありますか?
gzip */*.txt
ただし、gzipは元のファイル名を知るために使用するため、各ファイルの拡張子は.txt.gzになります。
以下はサブディレクトリがある場合でも機能します。例えば。 dir1/dir2 /.../ foo.txt
find . -type f -name "*.txt" -exec gzip {} \;
gzip -r dir1 dir2