ループや 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 ./ の方がいいと思います これは同じことを行いますが、より短いものです。