Вместо -exec rm -rf {}\;
попробуйте параметр -delete
, если он доступен в вашей версии команды find
. Это будет отображать сообщение об ошибке после каждой неудачной попытки удаления. Это может дать вам больше информации о том, что происходит.
$ find . -name "*.foo" -type f -mtime +7 -delete
find: -delete: unlink(./four.foo): Permission denied
find: -delete: unlink(./one.foo): Permission denied
find: -delete: unlink(./three.foo): Permission denied
find: -delete: unlink(./two.foo): Permission denied
Ни один из них find
не возвращает фактический код выхода из команды delete / rm. Вы можете сделать что-то вроде этого:
find . -name ... -type f -mtime +7 | while read file
do
if rm -fr $file
then
echo "Successfully deleted $file"
else
echo "Error deleting file: Exit code $?"
fi
done
Это может помочь вам лучше понять, что происходит.