Как найти и удалить файлы старше конкретной даты в Linux

Как найти и удалить файлы старше конкретной даты в Linux

Хочу в этой теме «Как найти и удалить файлы старше конкретной даты в Linux» рассказать как можно найти и удалить определенные файлы по дате в ОС  Linux таких как Debian, Ubuntu или Redhat, Centos. На готовых примера покажу что и как нужно делать.

1. Посмотрим список всех файлов в папке с датой изменения, для этого стоит выполнить команду:

#··ls -lah /home/captain/
<img aria-describedby= >пример использование команды ls -lah для вывода подробной информации о файлах

2. Чтобы узнать сегодняшнюю дату, нужно выполнить:

3 lines
# date
on Jul 14 04:04:52 EEST 2014

3.  Команда что выше не вывела полную дату, можно это исправить:

5 lines
#·ls --full-time
total 36576
drwxr-xr-x 8 root root 4096 2014-06-06 07:16:21.000000000 +0300 firefox
-rw-r--r-- 1 root staff 37445961 2014-06-06 07:21:16.000000000 +0300 firefox-30.0.tar.bz2

4. Допустим нужно найти файлы и удалить их по определенной дате.

Если нужно найти все файлы свыше 3 дня и после чего удалить их:

# find /home/captain·-type f -mtime +3 -exec rm -rf {} ;

Если нужно найти все файлы свыше 90 дней и после чего удалить их:

# find /home/captain·-type f -mtime +90 -exec rm -rf {} ;

Если нужно найти все файлы свыше 365 дней и после чего удалить их:

# find /home/captain·-type f -mtime +365 -exec rm -rf {} ;

Если нужно найти все файлы свыше 100 дней и после чего удалить их:

# find /home/captain -type f -mtime +100 -exec rm -rf {} ;

Удаление файлов старше N дней

$ find /dir/ -atime +N | xargs rm -f

так же:

$ find /dir/ -atime +N -delete

можно еще вот так:

$ find /dir/ -name "*.jpg" -mtime +N -exec rm -f {} ;

Ключи:
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.
-type — тип искомого: f=файл, d=каталог, l=ссылка (link).
-user — владелец: имя пользователя или UID.
-group — владелец: группа пользователя или GID.
-perm — указываются права доступа.
-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
-atime — время последнего обращения к файлу.
-ctime — время последнего изменения владельца или прав доступа к файлу.
-mtime — время последнего изменения файла.
-newer другой_файл — искать файлы созданные позже, чем другой_файл.
-delete — удалять найденные файлы.
-ls — генерирует вывод как команда ls -dgils.
-print — показывает на экране найденные файлы.
-exec command {} ; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.
-ok — перед выполнением команды указанной в -exec, выдаёт запрос.
-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
-prune — используется, когда вы хотите исключить из поиска определённые каталоги.
N — количество дней.

Вот собственно и все, завершил я тему «Как найти и удалить файлы старше конкретной даты в Linux», очень все просто, если знаешь что и как. Спасибо что читаете мой блог http://linux-notes.org

Было ли это полезно?

0 / 0