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
                ├── A.tar.gz
                ├── B.tar.gz
                ├── C.tar.gz
                ├── D.tar.gz
                ├── 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 1


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.

  • Where should I give target directory in the command?
    – beginner
    Mar 27, 2018 at 13:27
  • 1
    Ok. Gave like this to get the extracted files into target directory. find . -name '*.tar.gz' -execdir tar -C /path/to/targetdirectory -xzvf '{}' \; This worked
    – beginner
    Mar 27, 2018 at 14:20
  • Yep, you can specify the commands as usual within the -exec option.
    – slhck
    Mar 27, 2018 at 14:30
  • hi...I have small doubt. Is there a way to give path to those...*.tar.gz files?
    – beginner
    Apr 12, 2018 at 15:16
  • You can find in another directory by replacing find . with find /path/to/directory.
    – slhck
    Apr 13, 2018 at 7:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.