
Недавнее сканирование нашего файлового сервера на наличие временных файлов~$добавление к началу имени дало около 1000 результатов.
Даты последнего изменения этих файлов относятся к 2003 году (поэтому сейчас они, как правило, уже не нужны и их можно безопасно удалить).
Мне нужен скрипт, который будет определять и удалять все файлы, начинающиеся с «~$», и который я затем мог бы запланировать на сервере для автоматического регулярного удаления этих временных файлов.
решение1
Для определенного каталога это приведет к рекурсивному удалению всех файлов с именами, начинающимися с ~$:
find /path/to/directory -type f -name '~$*' -exec rm '{}' \;
Чтобы ограничить его только этим конкретным каталогом, а не его подкаталогами, используйте maxdepth:
find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;
Измените интегральный аргумент на -maxdepth
в зависимости от предполагаемого уровня каталогов, в которых следует искать файлы.
Другой более простой подход — использовать globs, но это не очень хорошая идея, так как он попытается затронуть каталоги, соответствующие шаблону. Он все равно их не удалит, но вам придется беспокоиться об ошибке. Вы можете использовать -f
option или send error output to, /dev/null
но это уже грязно для метода:
rm '/path/to/directory/~$'*