ディレクトリ内のファイルセットを解凍するには?

ディレクトリ内のファイルセットを解凍するには?

このディレクトリには約10,000個のファイルがあり、その一部は.fits、一部は.tarです。これで、.tarファイルを解凍するだけです。 if条件を実行するのは妥当であるようですが、untarコマンド「xvf」はファイルごとにのみ機能するため、ループは使用できません。

答え1

untar コマンド「xvf」はファイルごとにのみ機能します。

これはループを利用します。必要:

for file in ./*.tar; do tar xvf "$file"; done

答え2

実際にfindループなしでこれを行うことができます。このように:

find -iname '*.tar' -maxdepth 1 -exec tar xvf '{}' \;

ロジックは次のとおりです。

  • -iname拡張子があるファイルと一致します.tar(大文字と小文字を区別しません)。
  • -maxdepth 1一致を深さ1に制限します(したがって./*/*.tar一致するものはありません)。
  • 最後に、一致するファイルに対してコマンドを実行します-exec(注、エスケープが必要です。詳細については参照)。tar xvf;{}find(1)

関連情報