How can we GZip every file separately?
I don't want to have all of the files in a big tar.
How can we GZip every file separately?
I don't want to have all of the files in a big tar.
Or, if you have pigz (gzip utility that parallelizes compression over multiple processors and cores)
pigz *
The following command can run multiple times inside a directory (without "already has .gz suffix" warnings) to gzip whatever is not already gzipped.
find . -maxdepth 1 -type f ! -name '*.gz' -exec gzip "{}" \;
A more useful example of utilizing find is when you want to gzip rolling logs. E.g. you want every day or every month to gzip rolled logs but not current logs.
# Considering that current logs end in .log and
# rolled logs end in .log.[yyyy-mm-dd] or .log.[number]
find . -maxdepth 1 -type f ! -name '*.gz' ! -name '*.log' -exec gzip "{}" \;
fyi, this will help to overwrite if an existing gz file along with creating few gz file if it is not present:
find . -type f | grep "in case any specific" | grep -E -v "*.gz$" | xargs -n1 -P8 sh -c 'yes | gzip --force --best -f $0'