Часто виникають ситуації, коли потрібен перегляд нещодавно створених, нових файлів в операційній системі. Цього часто потребує системний адміністратор, який створив файл конфігурації, а потім просто забув, де він був збережений. Також потреба в пошуку нових файлів може виникнути з тієї причини, що вам необхідно подивитися, змінювався файл останнім часом чи ні. Загалом, ситуації можуть бути найрізноманітнішими. Перевага операційної системи 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
.