Как найти новые файлы в Linux

Бывают случаи когда нужно посмотреть все новые, недавно измененные или созданные в произвольный период файлы в операционной системе Linux. Например, если вы системный администратор и создали файл конфигурации, но потом забыли где его сохранили или же просто хотите проверить не изменял ли кто-либо корневую файловую систему в последнее время. Linux, как всегда, радует множеством способов для решения этой задачи. В этой инструкции мы рассмотрим некоторые из них.

Содержание статьи:

Способ 1 find

Самый распространенный способ найти новые файлы в linux - это воспользоваться утилитой find. В зависимости от ситуации и потребностей утилите передаются различные параметры, можно искать файлы в конкретном диапазоне дат, новее определенной даты или новее определенного файла. Рассмотрим все подробнее.

Можно вывести все файлы в директории и поддиректориях, а затем отсортировать по дате создания:

find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

Если содержимое подкаталогов выводить не нужно, уберите опцию "type -f"

2015-10-21 15:58:32.4562915840 /etc/resolv.conf
2015-10-21 14:33:33.9779999590 /etc/mtab
2015-10-14 22:10:58.6388874820 /etc/profile.env
2015-10-14 22:10:58.6388874820 /etc/csh.env
2015-10-14 22:10:58.6358874820 /etc/ld.so.cache
2015-10-14 22:10:58.5698874850 /etc/prelink.conf.d/portage.conf
2015-10-13 17:44:11.6425822880 /etc/gshadow
2015-10-13 17:44:11.5535822920 /etc/group

Но это слишком громоздко и ресурсоемко, да и не нужны нам все файлы, нам надо только новые. Следующей командой можно получить все файлы, измененные или созданные за последние 60 минут:

find /target_directory -type f -mmin -60

Чтобы найти последние измененные файлы linux за последних два дня используете параметр mtime:

find /target_directory -type f -mtime -2

Если нужно не углубляться в подкаталоги ниже третьего уровня, используйте опцию depth:

find /target_directory -type f -mtime -2 -depth -3

Также можно задать диапазон времени, в котором был создан или изменен файл. Например, чтобы посмотреть новые файлы linux за последние семь дней, но исключая последние три дня, наберите:

find /target_directory -type f -mtime -7 ! -mtime -3

Все эти команды выводят только путь к файлу, но также можно посмотреть атрибуты с помощью опции --exec. Выведем подробные атрибуты новых файлов, выполнив для каждого из них утилиту ls:

find /target_directory -type f -mmin -60 -exec ls -al {} \;

Предыдущая команда немного сложна и запутана, намного нагляднее для этого использовать утилиту xargs:

find /target_directory -type f -mmin -60 | xargs ls -l

Утилита find также позволяет найти файлы новее определенного файла. Например, создадим эталонный файл:

touch /tmp/test

И найдем все файлы, созданные после его него:

find -type f -newer /tmp/test

Способ 2. ls

Этот способ намного проще первого, но за простоту мы платим гибкостью. Команда ls тоже умеет сортировать файлы в директории по дате создания. Просто выполните:

ls -ltr

В данном случае самый новый файл будет в самом низу. Если файлов очень много можно обрезать вывод с помощью tail:

ls -ltr | tail

Выводы

Возможно, это еще не все способы найти новые файлы в Linux, но тут уже есть из чего выбрать лучшее решение для конкретной ситуации. Как показано в этой статье, базовые команды поиска find и ls могут получить еще большую гибкость в объединении с утилитами сортировки sort, а также фильтрации tail и grep.

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (3 оценок, среднее: 4,33 из 5)
Загрузка...

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: