Удалить все файлы, созданные до определенной даты

У меня есть каталог, содержащий большое количество файлов (например, журналы для каждого дня в году). Я хотел бы удалить все файлы, созданные до 22/11. Как я могу это достичь? Должен ли я использовать find then exec -rm ? Я использую ksh.

3 Solutions collect form web for “Удалить все файлы, созданные до определенной даты”

Использование find по-прежнему является предпочтительным способом удаления файлов. См. http://mywiki.wooledge.org/UsingFind для получения дополнительной информации.

Один из способов сделать это – создать файл с отметкой времени в нем. например

 touch -t 201311220000 /tmp/timestamp 

Теперь удалите файлы GNU find (предполагается в текущем каталоге), которые соответствуют отметке времени, например:

 find . -type f ! -newer /tmp/timestamp -delete 

или не найти GNU

 find . -type f ! -newer /tmp/timestamp -exec rm {} \; 

С GNU или некоторым BSD find s:

 find . ! -newermt 2013-11-22 ! -type d -delete 

Обратите внимание, что он проверяет время последней модификации файлов. На некоторых BSD вы можете использовать -newerBt вместо -newermt чтобы проверить время рождения inode файла, если оно доступно.

 find /path/to/directory/ -mtime +<number of days> -name '<file name>' -exec rm -rf {} \; 

пример:

 find /Netap_fileshare_backup/SQL/DB_backups/xeo/ -mtime +15 -name 'ORA_XEO*' -exec rm -rf {} \; 

В этом случае он удалит все файлы, начинающиеся с «ORA_XEO» с более чем 15 дней.

  • Как разбирать сотни html файлов исходного кода в оболочке?
  • Почему я не могу запустить команду как пользователь, имеющий / bin / false в качестве оболочки входа?
  • Как вызвать скрипт, используя другой скрипт, расположенный в другом каталоге
  • Список подкаталогов, содержащих определенное имя файла
  • POSIX-совместимый / кросс-shell-способ для получения версии запущенной оболочки?
  • Dotfile не работает в текущей оболочке, нужен новый
  • shell: read: различать EOF и новую строку
  • Bash: Ошибка синтаксиса - Неожиданно рядом с токеном «else»
  • обрабатывать файлы в каталоге по мере их появления
  • Интервалы оболочки с использованием awk
  • shellcheck советует не использовать basename: почему?
  • Linux и Unix - лучшая ОС в мире.