Eu uso este script para uso próprio:
#!/bin/ksh
#
# @(#)$Id: save.sh,v 2.2 2007/09/01 23:41:23 jleffler Exp $"
#
# Compress directories to save space
case $(id | sed 's/^uid=\([0-9][0-9]*\)(.*//') in
0) echo "$(basename $0 .sh): cannot run safely as root!" 1>&2
exit 1;;
esac
for d in ${*:-'pwd'}
do
(
set -e
echo $d
cd $d
b='basename $d'
chmod 755 .
[ ! -d Safe ] && mkdir Safe
chmod 755 Safe
# GNU Tar Only!
find . -type f -print | grep -v '^./Safe' | tar -czf Safe/$b.tgz -T -
chmod 444 Safe/$b.tgz
chmod 555 Safe
(set +e; rm -fr 'pwd' 2>/dev/null ; exit 0)
chmod 755 Safe
mv Safe/* .
rmdir Safe
chmod 555 .
)
done
Note que 'root' pode deletar diretórios mesmo quando o dono não pode - então ele se recusa a deixar 'root' rodá-lo. Experimente em uma cópia do seu diretório antes de arriscar em algo importante. Estou feliz com isso - você pode preferir outra coisa.
Um dia, vou fazer funcionar com 'bzip2' ou outros compressores.