Linux – Compress multiple files individually with Gzip

compressiongziplinuxunix

I have several directories that look like this:

dir1/
  |_foo.txt
  |_bar.txt
dir2/
  |_qux.txt
  |_bar.txt

For each of this directory I want to compress the files inside it into *.gz format
then delete the uncompressed ones. So finally we hope to get something like this:

 dir1/
   |_foo.gz
   |_bar.gz
 dir2/
   |_qux.gz
   |_bar.gz

Is there a simple Unix way to do it?

Best Solution

gzip */*.txt

But the extension for each file will be .txt.gz, as gzip uses it to know the original filename.