Способи оплати 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.