現在のディレクトリには多くのフォルダがあります。各フォルダーにはtar.gzファイルがあります。 tar.gzファイルを抽出するには、各フォルダー内にいて、毎回次のコマンドを実行する必要があります。
tar xvzf tar.gz -C /path/to/targetdirectory
私の現在のディレクトリ内では、次のようになります。
current directory
├──Folder1
├── A.tar.gz
├──Folder2
├── B.tar.gz
├──Folder3
├── C.tar.gz
├──Folder4
├── D.tar.gz
├──Folder5
├── E.tar.gz
一度に全部抽出するためにこうやってみました
tar xvzf */*.tar.gz -C /path/to/targetdirectory
これは私にエラーを与えました:
tar: Folder1/A.tar.gz: Not found in archive
tar: Folder2/B.tar.gz: Not found in archive
tar: Folder3/C.tar.gz: Not found in archive
tar: Folder4/D.tar.gz: Not found in archive
tar: Folder5/E.tar.gz: Not found in archive
find
を使用し、見つかったファイルごとに、そのファイルのディレクトリでコマンドを実行します。
find . -name '*.tar.gz' -execdir tar -xzvf '{}' \;
-execdir
オプションは、見つかったファイルのフォルダー内からtar
を実行し、{}
はtarfileの名前に置き換えられます。
詳細は find
のドキュメント を参照してください。