Ответ 1
Ну, очевидное предостережение: оно удалит каталоги с именем CVS, независимо от того, являются ли они каталогами CVS или нет.
Вы можете легко превратить его в script:
#!/bin/sh
if [ -z "$1" ]; then
echo "Usage: $0 path"
exit 1
fi
find "$1" -name 'CVS' -type d -print0 | xargs -0 rm -Rf
# or find … -exec like you have, if you can't use -print0/xargs -0
# print0/xargs will be slightly faster.
# or find … -exec rm -Rf '{}' + if you have reasonably modern find
Изменить
Если вы хотите сделать его более безопасным/более безумным, вы можете сделать что-то подобное после первого блока if/fi (есть несколько способов написать это):
⋮
case "$1" in
/srv/www* | /home)
true
;;
*)
echo "Sorry, can only clean from /srv/www and /home"
exit 1
;;
esac
⋮
Вы можете сделать это столь же причудливым, как хотите (например, вместо прерывания, он может подсказать, действительно ли вы это сделали). Или вы можете разрешить относительные пути, поэтому вам не нужно будет всегда указывать полный путь (но опять же, возможно, вы хотите, чтобы это было безопаснее).