Часто возникают ситуации, когда требуется просмотр недавно созданных, новых файлов в операционной системе. В этом часто нуждается системный администратор, который создал файл конфигурации, а после просто забыл, где он был сохранен. Также потребность в поиске новых файлов может возникнуть по той причине, что вам необходимо посмотреть, изменялся ли файл в последнее время или нет. В общем, ситуации могут быть самыми разными. Достоинство операционной системы Linux в том, что она традиционно для решения определенной задачи предоставляет несколько способов.
Самый простой и распространенный способ поиска новых файлов в Linux – это утилита Find
. В зависимости от текущих потребностей ей передаются различные параметры, например, можно искать файлы только в определенном диапазоне календарных месяцев или дней, дальше деталей рассмотрим, как это можно сделать.
Файлы выводятся в директории и поддиректории и сортируются:
$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p ' | sort –r
Но, как видим, результат весьма впечатляющий, распознать из всего списка новые файлы не представляется возможным. Поэтому необходимо воспользоваться еще одной командой:
$ find /etc -type f -mmin -120
Так мы указываем, что поиск должен быть выполнен в системе только по файлам, которые были созданы в течение последнего часа.
Если необходимо охватить последние два дня, тогда вводим следующую команду:
$ find /etc -type f -mtime -2
Иногда углубляться в подкаталоги третьего уровня нет никакой надобности, поэтому, чтобы исключить это действие, нам необходимо использовать специальную опцию maxdepth
:
$ find /etc -maxdepth 3 -mtime -2 -type f
Мы можем посмотреть все новые файлы, созданные в системе Linux, за последние семь дней, но с тем исключением, что три последние дня брать в расчет не стоит:
$ find /etc -type f -mtime -7 ! -mtime -3
Эти команды выводят путь к файлу, а вот для просмотра атрибутов предстоит воспользоваться специальной опцией --exec
. Дальше выведем атрибуты каждого нового файла, используя утилиту ls
:
$ find /etc -type f -mmin -120 -exec ls -al {} ;
Если эта команда вам кажется слишком запутанной и сложной, можно пользоваться другой:
$ find /etc -type f -mmin -120 | xargs ls -l
Здесь уже используется другая утилита – xargs
. Утилита find также позволяет найти файлы новее определенного файла. Например, создадим эталонный файл:
$ touch /tmp/test
Теперь отыщем все новые файлы в корневом каталоге, которые были созданы после него:
$ find / -type f -newer /tmp/test
Перейдем к другому методу.
Эта методика поиска новых файлов намного проще предыдущей, поэтому ее можно смело рекомендовать начинающим пользователям Linux. Команда ls
тоже умеет сортировать файлы в директории по дате создания. Для этого нам нужно выполнить всего:
$ ls -ltr
Файлов может быть слишком много, поэтому разумно выполнить и такую команду:
$ ls -ltr | tail
Здесь приведены не все способы поиска новых файлов, но перечисленных способов вполне достаточно, чтобы справиться с поставленной задачей быстро и эффективно. Как видим, базовые команды поиска find и ls могут получить еще большую гибкость в объединении с утилитами сортировки sort, а также фильтрации tail
и grep
.