1

Недавняя проверка на нашем файловом сервере временных файлов с добавлением ~ $ к началу имени дала почти 1000 результатов.

Даты "последнего изменения" этих файлов относятся к 2003 году (так что теперь они, как правило, являются избыточными и могут быть безопасно удалены).

Мне нужен скрипт, который идентифицирует и удаляет любые файлы, начинающиеся с "~ $", которые я затем мог бы запланировать запускать раз в неделю на сервере, чтобы автоматически очищать эти временные файлы.

1 ответ1

2

Для определенного каталога это приведет к удалению всех файлов с именами, начинающимися с ~ $ рекурсивно:

find /path/to/directory -type f -name '~$*' -exec rm '{}' \;

Чтобы ограничить его только этим конкретным каталогом, а не его подкаталогами, используйте maxdepth:

find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;

Измените интегральный аргумент на -maxdepth зависимости от предполагаемого уровня каталогов для поиска файлов.

Другим более простым подходом является использование глобусов, но это не очень хорошая идея, поскольку он будет пытаться касаться каталогов, соответствующих шаблону. Он по-прежнему не удалит их, но вам придется заморачиваться с сообщением об ошибке. Вы можете использовать опцию -f или отправить вывод ошибок в /dev/null но для метода это уже грязно:

rm '/path/to/directory/~$'*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .