logmanager/logcompressor

38 lines
763 B
Bash
Executable File

#!/bin/sh
p=gzip
help() {
cat <<EOF
Usage: `basename "$0"` -h | [-n] [-g|-b|-l|-x|-c ZIP] DIR [DIR [...]]
Compress all uncompressed files in DIR/archive
-c ZIP Use this compressor ZIP (std: $p).
-n dummy mode. Shows files which will be compressed, if not in dummy mode.
Predefined compressors: -g: gzip, -b: bzip2, -l: lzma, -x: xz
EOF
exit
}
while getopts he:ngblxc: o
do
case "$o" in
-) break ;;
h) help ;;
n) n=echo ;;
g) p=gzip ;;
b) p=bzip2 ;;
l) p=lzma ;;
x) p=xz ;;
c) p="$OPTARG" ;;
esac
done
shift `expr $OPTIND - 1`
[ 0 -lt $# ] || help
for d
do
find "$d" -name archive -type d -exec sh -c 'empty=
find "$1" -type f ! -name "*.bz2" ! -name "*.gz" ! -name "*.lzma" ! -name "*.xz" -exec '"$n"' '"$p"' -- "{$empty}" \;' -- '{}' \;
done