Если необходимо удостовериться, что оба процесса закончены прежде, чем продолжиться к следующему шагу, простое решение состояло бы в том, чтобы записать что-то в файл и проверить его. Просто сделайте главу или кошку на файле (со значением по умолчанию 0) и добавьте 1 к первой строке. Если Вы обнаруживаете 2, то оба процесса завершаются. Конечно, дополнение должно быть сделано в самой нижней части Ваших сценариев.
GNU find имеет параметр -delete, который всегда безопасен:
find . -type -f -delete
Как уже говорилось в другом месте, вы также можете использовать xargs, но будьте очень осторожны при его использовании.
find . -type f -print0 | xargs -0 rm -vf
Все остальные ответы предполагают, что вы хотите сохранить каталоги, но из исходного сообщения не ясно, что вы делаете; более того, даже если вы хотите сохранить структуру, вам все равно придется удалить и воссоздать каталоги, потому что файлы каталогов стали очень большими - они не сжимаются, когда вы их очищаете, а их размер значительно замедлит работу с ними в будущем.
Вы учли только
rm -rf log*
Если вы можете справиться с множеством ошибок, когда rm не может удалить каталоги, вы можете подойти к проблеме с другой стороны
for dir in $(find . -type d)
do
rm $dir/*
done
Кроме переформатирования раздела, я делаю не вижу более быстрого способа удалить все файлы.
Проблема в том, что у вас огромное количество файлов в этих каталогах (размер в выводе ls -l
, который вы предоставляете, огромен!) . Для каждого rm
файловая система должна делать следующее:
Даже если вы rm
каталог, вы избавитесь только от шага №2, описанного выше, потому что вам все равно нужно запросить каталог и уменьшить счетчик ссылок. Запросы к каталогу можно оптимизировать для получения более одного номера индексного дескриптора за раз, но во всех случаях для каждого удаляемого файла файловая система должна проверять индексный дескриптор на предмет количества ссылок и обновлять индексный дескриптор (или отмечать его для удаления).
Другими словами, эта операция O (n)
для количества файлов для удаления, что в вашем случае очень велико.
Если вы не можете отформатировать свой раздел, что, я думаю, твой случай ;-), просто запустите задачу в фоновом режиме или на экране и наберитесь терпения.
Другое решение - сделать резервную копию файлов, которые вы хотите сохранить, отформатировать раздел и восстановить файлы. Может быть, это быстрее, чем удаление всех файлов, но требует больше времени ( find ... rm
можно забыть в фоновом режиме на много дней, если необходимо ...).