Intereting Posts
Как удалить расширение имени файла из списка имен файлов в bash Является ли iptables -p прото-м прото-избыточным? Что такое общий способ выяснить, имеет ли ядро ​​ext4 (или другие) ошибки? setfacl не работает в файлах, созданных Apache Как вызвать фрагментацию памяти на встроенном устройстве на базе Linux? ошибка повтора – не может изменить режим на rwxr-sr-x Xdialog – Захват пользователя и пароль для shellscript Bluez bluetoothd требует root для всех взаимодействующих с ним процессов как извлечь шаблон из pdf и сохранить в текстовый файл Запустите `dbus-send` в удаленной системе Запуск службы до входа пользователя в систему Как я могу использовать sed для удаления первого абзаца файла? Как удалить 1 диск из массива RAID-5 mdadm? Какая программа запускает $ XDG_CONFIG_HOME / autostart в Debian 9? Red Hat <пользователь> не может зарегистрироваться в каких-либо организациях. Как зарегистрироваться?

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

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

Использование 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 дней.