1

Мне было интересно, как автоматически удалять старые файлы в определенной папке, но я хочу, чтобы исключить подпапки. Я знаю, как автоматизировать процесс, и я знаю, как удалить старые файлы, включая подпапки:

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

Для автоматизации я просто позволяю открыть его при запуске один раз.

1 ответ1

2

От man 1 find

-maxdepth levels на большинстве levels (неотрицательных целых) уровней каталогов ниже аргументов командной строки. -maxdepth 0 означает применять только тесты и действия к аргументам командной строки.

find /path/to/dir1 /path/to/dir2 /foo/bar/fileA -maxdepth 1 -type f -mtime +30 -exec rm {} +

Заметки:

  • Sole rm хорошо работает с файлами, а не с каталогами, и вы хотите, чтобы удалялись только файлы, поэтому -type f .
  • -exec rm {} \; был заменен на -exec rm {} + . Считайте -delete (см. Мой ответ).
  • Если ваша find не поддерживает -maxdepth посмотрите, как ограничить find POSIX определенной глубиной .

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