Question

I have several directories with files of various sizes. I would like to archive only those files over 100 megabytes in size. Any ideas of a simple command line argument to do this?

Was it helpful?

Solution

Like this

find . -size +100M -exec gzip {} \;

If you are thinking of running it regularly, you may wish to exclude already gzipped files like this

find . ! -name "*.gz" -size +100M -exec gzip {} \;

And if you have lots of big files and (say) a quad core CPU, you could do 4 at a time like this

find . -size +100M | xargs -n 1 -P 4 gzip

OTHER TIPS

Check out the -size option to the find command.

Documentation: find(1)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top