how can I extract multiple gzip files in directory and subdirectories?

Solution 1:

You can use below command.

Go to the directory where your .gz file is and run command:

for f in *.gz ; do gunzip -c "$f" > /home/$USER/"${f%.*}" ; done

It will extract all file with original name and store it to current user home directory(/home/username). You can change it to somewhere else.

EDIT :

gunzip *.gz

This command also will work. But, by default, it replaces original file.

Solution 2:

Option # 1 : unzip multiple files using single quote (short version)

gunzip '*.gz'

Note that *.gz word is put in between two single quote, so that shell will not recognize it as a wild card character.

Option # 2 : unzip multiple files using shell for loop (long version)

for g in *.gz; do gunzip $g; done

The Source

EDIT :

I have just tried :

gunzip -dk *.gz

and it worked.

-d to decompress and k to keep original files.

Solution 3:

Linux Users:

Use the following command for extracting minimum amount of .gz files in the current directory and its sub directories

gunzip *.gz

Use the following command for extracting any number of .gz files in the current directory and its sub directories

sudo find . -name "*.gz" | xargs gunzip