40

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?

pl_rock
  • 11,297

3 Answers3

52

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.

pl_rock
  • 11,297
  • Have you read what I wrote in my question? gunzip *.gz is not working for me. But the for loop works, I am puzzled. – Herman Toothrot Nov 03 '15 at 13:24
  • but it is working for me and others also why is showing invalid option -- 'Y' . i think either your file format is not ok or you missing some thing in command. – pl_rock Nov 03 '15 at 13:26
  • also see http://unix.stackexchange.com/questions/56421/gunzip-all-gz-files-in-directory – pl_rock Nov 03 '15 at 13:27
14

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.

Bilal
  • 3,699
6

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
kmsvignesh
  • 61
  • 1
  • 1