Ну, очевидное предостережение: он удалит каталоги с именем CVS, независимо от того, являются ли они каталогами CVS или нет.
Вы можете довольно легко превратить его в скрипт:
#!/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
⋮
Вы можете сделать это так, как вам хочется (например, вместо прерывания, он может запросить, действительно ли вы это хотели) Или вы можете настроить разрешение относительных путей, поэтому вам не нужно будет всегда указывать полный путь (но, опять же, возможно, вы хотите, чтобы это было безопаснее).