Как найти новые файлы в 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.

Creative Commons License
Статья Как найти новые файлы в Linux распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

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

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

Ответить

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

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