複数のフォルダーがあるディレクトリがあり、各フォルダーには.gzファイルが含まれています。すべてを一度に解凍するにはどうすればよいですか?

データは次のようになります

フォルダのリスト

A B C D 

それらすべてにファイルがあります

A a.out.gz B b.out.gz C c.out.gz D d.out.gz 

コメント

  • gunzip */*.gz

回答

これはgunzipを使用して、フォルダ内のすべてのファイルを解凍し、末尾が.out.gz

gunzip */*.out.gz 

これで「ループ」します* zipファイルが含まれているすべてのフォルダを経由します。例を追加しましょう:

A a.out.gz B b.out.gz C c.out.gz D d.out.gz E e.out 

上記のコマンドを使用して、a.out.gz b.out.gz c.out.gz d.out.gzはすべて解凍されますが、e.out圧縮されていないため。

*これは globbing または filenameexpansion と呼ばれます。 こちらで詳細をお読みください。

コメント

  • しかし、それぞれにzipファイルが含まれている複数のフォルダーがある場合はどうなりますか。すべてのフォルダをループするにはどうすればよいですか?
  • */*.out.gzはすべてのフォルダをループします('は*/パート)
  • @HoHoHoが指摘しているように、これは"ループ"。 'いくつかの追加の説明と、概念をさらに説明するページへのリンクを追加しました:)

回答

find . -type f -name "*.gz" -execdir gunzip {} \; 

検索するexecdirオプションにより、「find」が各ディレクトリに順番に「cd」され、execコマンド(gunzip inこの場合)、次に「cd」してcwdに戻します

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です