Как найти новые файлы в Linux
Бывают случаи когда нужно посмотреть все новые, недавно измененные или созданные в произвольный период времени файлы в операционной системе Linux. Например, если вы системный администратор и создали файл конфигурации, но потом забыли где его сохранили или же просто хотите проверить не изменял ли кто-либо корневую файловую систему в последнее время.
Операционная система Linux, как всегда, радует множеством способов для решения этой задачи. В этой инструкции мы рассмотрим некоторые из них.
Поиск новых файлов в Linux
Способ 1. Утилита find
Самый распространенный способ найти новые файлы в linux — это воспользоваться утилитой find. В зависимости от ситуации и потребностей утилите передаются различные параметры, можно искать файлы в конкретном диапазоне дат, новее определенной даты или новее определенного файла. Рассмотрим все подробнее.
Можно вывести все файлы в директории и поддиректориях, а затем отсортировать по дате создания:
find /etc -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r
Но это слишком громоздко, да и не нужны нам все файлы, нам надо только новые. Следующей командой можно получить все файлы, измененные или созданные за последние 60 минут:
Чтобы найти последние измененные файлы linux за последних два дня используете параметр mtime:
Если нужно не углубляться в подкаталоги ниже третьего уровня, используйте опцию 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 <> \;
Предыдущая команда немного сложна и запутана, намного нагляднее для этого использовать утилиту xargs:
find /etc -type f -mmin -120 | xargs ls -l
Утилита find также позволяет найти файлы новее определенного файла. Например, создадим эталонный файл:
И найдем все файлы в корневом каталоге, созданные после его него:
find / -type f -newer /tmp/test
Способ 2. ls
Этот способ намного проще первого, но за простоту мы платим гибкостью. Команда ls тоже умеет сортировать файлы в директории по дате создания. Просто выполните:
В данном случае самый новый файл будет в самом низу. Если файлов очень много можно обрезать вывод с помощью tail:
Выводы
Возможно, это еще не все способы найти новые файлы в Linux, но тут уже есть из чего выбрать лучшее решение для конкретной ситуации. Как показано в этой статье, базовые команды поиска find и ls могут получить еще большую гибкость в объединении с утилитами сортировки sort, а также фильтрации tail и grep.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Поиск последних измененных файлов/папок в Unix/Linux
Иногда, нужно найти все измененные файлы или папки в Unix/Linux ОС и в моей статье «Поиск последних измененных файлов/папок в Unix/Linux» я расскажу как это сделать.
Чтобы найти все файлы, которые были изменены с момента определенного времени (т.е. час назад, день назад, 24 часа назад и так далее) в Unix и Linux имеется команда find и она очень пригодиться для таких целей.
Чтобы найти все файлы, которые были изменены в течение последних 24 часов (последний полный день) в текущем каталоге и в его подкаталогах, используйте:
Опция «-mtime -1» сообщает команде find искать модифицированные файлы за последние сутки (24 часа).
Опция «-print» сообщает «find» выводить файлы и их пути (где они лежат) и данную команду можно заменить на «-ls» если нужно вывести подробную информацию о файле.
Например нужно найти файлы, что были изменены за последние 30 минут в папке /home/captain:
# find /home/captain -type f -mmin -30
И приведу пример подобного, но для папки:
# find /home/captain -type d -mmin -30
Например нужно найти измененные файлы за 5 дней, но не включать в поиск вчерашний день (за последний день):
# find /home/captain -type f -mtime -5 ! -mtime -1
Для полного счастья, можно вывести время модификации и отсортировать по нему:
# find /home/captain -type f -mtime -5 ! -mtime -1 -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
Чтобы ограничить уровень вложенности, добавьте параметр «-depth». Например, поиск с уровнем вложенности не более 3 папок:
# find /home/captain -type f -mmin -30 -depth -3
Поиск файлов в /home/captain директории (и во всех ее подпапках) которые были изменены в течение последних 60 минут, и вывести их атрибуты:
$ find/ home/captain -type f -mmin -60 -exec ls -al <> \;
В качестве альтернативы, вы можете использовать xargs команду, чтобы достичь того же:
$ find /home/captain -type f -mmin -60 | xargs ls -l
Поиск последних измененных файлов/папок в Unix/Linux завершен.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Рубрики
- Arch Linux (167)
- Commands (36)
- Debian’s (635)
- Administration tools Ubuntu (37)
- Backups Debian’s (7)
- Database в Ubuntu (58)
- Games (игры) (1)
- Monitoring в Debian и Ubuntu (49)
- Virtualization в Ubuntu / Debian/ Linux Mint (41)
- Docker (22)
- Kubernetes (6)
- KVM (4)
- OpenVZ (3)
- Vagrant (5)
- VirtualBox (6)
- ArgoCD (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Apache (32)
- Cherokee (1)
- FTP-services (5)
- Lighttpd (1)
- Nginx (26)
- PHP (27)
- Proxy для Debian’s (2)
- Tomcat (4)
- Панели управления в Ubuntu/Debian/Mint (24)
- Установка и настройка почты на Ubuntu/Debian (12)
- Хранилища (clouds) (2)
- Administration tools freeBSD (19)
- Database во FreeBSD (52)
- Monitoring во freeBSD (37)
- Virtualization во FreeBSD (22)
- VoIP (1)
- Установка Web сервисов (91)
- Установка и настройка почты (6)
- Установка из ports (пакетов) (19)
- Установка из sorce code (исходников) (23)
- Непрерывная интеграция (CI) (27)
- Database в MacOS (36)
- Monitoring в Mac OS (31)
- Security (безопасность) (12)
- Virtualization в Mac OS (30)
- Docker (19)
- Kubernetes (6)
- Vagrant (5)
- VirtualBox (5)
- ArgoCD (1)
- CircleCI (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Administration tools CentOS (49)
- Backups RPM’s (4)
- Database в CentOS (68)
- Monitoring в CentOS (67)
- Virtualization в CentOS/ Red Hat/ Fedora (42)
- Docker (23)
- Kubernetes (6)
- KVM (5)
- OpenVZ (2)
- Vagrant (5)
- VirtualBox (6)
- VMWare (3)
- ArgoCD (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Apache (35)
- Cherokee (1)
- DNS (3)
- FTP (10)
- Nginx (33)
- PHP (34)
- Proxy для RedHat’s (2)
- Tomcat (2)
- Voice (2)
- Панели управления в CentOS/Red Hat/Fedora (27)
- Прокси сервер на CentOS/RHEL/Fedora (4)
- Установка и настройка почты на CentOS/RHEL/Fedora (14)
- Хранилища (clouds) (1)
соц сети
Архив новостей
Свежие записи
Свежие комментарии
- Глеб к записи Установка Adobe Flash Player в Debian/Ubuntu/Mint
- Максим к записи Заблокировать User Agents используя Nginx
- Денис к записи Как включить EPEL репозиторий на CentOS
- Гость к записи Закомментировать/Раскомментировать строки vi/vim в Unix/Linux
- Sergey к записи Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint