Способы оплаты Abuse

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

27.02.2021, 20:44

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

Пользуемся утилитой Find

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

Файлы выводятся в директории и поддиректории и сортируются:

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

Вывод файлов в директории и поддиректориях,

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

$ find /etc -type f -mmin -120

Файлы измененные или созданные за последние 60 минут

Так мы указываем, что поиск должен быть выполнен в системе только по файлам, которые были созданы в течение последнего часа.

Если необходимо охватить последние два дня, тогда вводим следующую команду:

$ find /etc -type f -mtime -2

Файлы измененные за последние 2 дня

Иногда углубляться в подкаталоги третьего уровня нет никакой надобности, поэтому, чтобы исключить это действие, нам необходимо использовать специальную опцию maxdepth:

$ find /etc -maxdepth 3 -mtime -2 -type f

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

$ find /etc -type f -mtime -7 ! -mtime -3

Исключить последние 3 дня

Эти команды выводят путь к файлу, а вот для просмотра атрибутов предстоит воспользоваться специальной опцией  --exec. Дальше выведем атрибуты каждого нового файла, используя утилиту ls:

$ find /etc -type f -mmin -120 -exec ls -al {} ;

Вывод подробных атрибутов новых файлов

Если эта команда вам кажется слишком запутанной и сложной, можно пользоваться другой:

$ find /etc -type f -mmin -120 | xargs ls -l

Утилита xargs

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

$ touch /tmp/test

Теперь отыщем все новые файлы в корневом каталоге, которые были созданы после него:

$ find / -type f -newer /tmp/test

Перейдем к другому методу.

Пользуемся LS

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

$ ls -ltr

Команда ls тоже умеет сортировать файлы в директории по дате создания

Файлов может быть слишком много, поэтому разумно выполнить и такую команду:

$ ls -ltr | tail

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