neversaint
neversaint

Reputation: 63984

Compress multiple files individually with Gzip

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?

Upvotes: 37

Views: 74893

Answers (3)

dogbane
dogbane

Reputation: 274532

The following will work even if you have sub-directories. E.g. dir1/dir2/.../foo.txt

find . -type f -name "*.txt" -exec gzip {} \;

Upvotes: 10

vovick
vovick

Reputation: 308

gzip -r dir1 dir2

Upvotes: 13

Juliano
Juliano

Reputation: 41387

gzip */*.txt

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

Upvotes: 52

Related Questions