There are many folders in my current directory. Each folder has a tar.gz file. To extract the tar.gz file I need to be inside each folder and run the following command every time.
tar xvzf tar.gz -C /path/to/targetdirectory Inside my current directory it looks like below:
current directory ├──Folder1 ├── A.tar.gz ├──Folder2 ├── B.tar.gz ├──Folder3 ├── C.tar.gz ├──Folder4 ├── D.tar.gz ├──Folder5 ├── E.tar.gz To extract all at a time I tried like this
tar xvzf */*.tar.gz -C /path/to/targetdirectory This gave me an error:
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 1 Answer
Use find and execute a command on each found file, in the directory of that file:
find . -name '*.tar.gz' -execdir tar -xzvf '{}' \; The -execdir option executes tar from within the folder of the found file, and {} will be replaced by the tarfile's name.
See the find documentation for more info.