ループや find
以上の必要はありません と gzip
:
find . -type f ! -name '*.gz' -exec gzip "{}" \;
これにより、現在のディレクトリ内およびその下にある、名前が .gz
で終わらないすべての通常のファイルが検索されます。 拡張子 (つまり、まだ圧縮されていないすべてのファイル)。 gzip
を呼び出します
user unknown
からのコメントに基づいて編集 :
中括弧 ({}
) はファイル名に置き換えられ、-exec
に続くコマンドに単一の単語として直接渡されます。 こちらでご覧いただけます:
$ touch foo
$ touch "bar baz"
$ touch xyzzy
$ find . -exec echo {} \;
./foo
./bar baz
./xyzzy
find . -type f | while read file; do gzip "$file"; done
gzip -r ./
の方がいいと思います これは同じことを行いますが、より短いものです。