Reputation: 63984
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
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
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