GNU/Linux >> Linux の 問題 >  >> Linux

bash のすべてのサブディレクトリにあるすべてのファイルを gzip する方法

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


Linux
  1. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  2. サブディレクトリを凝縮する方法は?

  3. Linuxで1GBサイズを超えるすべてのファイルを見つける方法は?

  1. Linuxで777権限を持つすべてのファイル/フォルダを見つける方法は?

  2. Linux ですべてのスパース ファイルを見つける方法

  3. すべてのファイルとディレクトリを再帰的に一覧表示する方法

  1. Linux ですべてまたは特定のファイルを gzip する方法

  2. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  3. ディレクトリ内のすべてのゼロバイトファイルを見つける方法