Может ли каталог mtime быть старше, чем файл внутри?

У меня есть этот очень глупый и очень простой вопрос, но я подумал, что лучше спросить, прежде чем начать обрезку своего NAS.

Я хочу удалить все каталоги, в которых все файлы старше 30 дней.

Для файлов, которые я мог бы сделать:

find /path/to/files* -mtime +30 -exec rm {} \;

Но это приведет к пустым папкам в некоторых местах. Так что я подумал, чтобы скорее удалить все папки с -mtime +30 но я не уверен, что mtime папки гарантирует mtime порог для его подпапок и файлов.

Кроме того, если то, что я считаю правильным, какой будет команда для того же?

1 ответ

Решение

В Linux время изменения каталога изменяется, если вы:

  • добавить новый файл
  • удалить существующий файл
  • или переименовать файл в нем

Если вы изменяете содержимое существующего файла, это не отражается в каталоге.

Из-за этого я предлагаю использовать эти команды:

    find /path/to/folder -type f -mtime +30 -delete

эта команда удаляет рекурсивный файл старше 30 дней и сохраняет папку.

    find /path/to/folder -type d -empty -delete

это удалить пустой каталог, если таковые имеются.

Источник:

Дата последнего изменения каталога

Как удалить все пустые каталоги в каталоге из командной строки?

Другие вопросы по тегам