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

I have tried both gzip and gunzip commands but I get either

gunzip *.gz
gzip: invalid option -- 'Y'
gunzip -S-1800-01-01-000000-g01.h5.gz
gzip: compressed data not read from a terminal. Use -f to force decompression. For help, type: gzip -h

If I try the -f option it takes a very long time to work on one single file and the command is not executed successfully. Am I missing something?

3

3 Answers

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.

3

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.

5

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
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like