Вівторок, 24 Червня, 2025

Як в терміналі Linux виконувати пошук файлів

Термінал у Linux є основним додатком для виконання задач, включаючи пошук файлів. У цьому вам допоможе використання команди find, з якою ви можете знаходити файли і каталоги в файловій системі Linux.

Для початку створіть тестову папку, яка містить тестові файли. Після створення тестового каталогу і файлів переконайтеся, що файли були створені за допомогою ls.

mkdir test

cd test

touch test1.txt test2.h test3.c TEST.f

ls

Пошук файлу в Linux

Скористаємося командою find , щоб в каталозі test знайти файл з ім’ям test1.txt. Використання find з “.” вказує, що пошук повинен бути обмежений поточним робочим каталогом. Після виконання команди find ви повинні побачити test1.txt файл, вказаний в результаті.

find . -name test1.txt

Пошук по частковому імені файлу в Linux

Іноді може знадобитися виконати пошук з використанням неповних імен файлів або каталогів.

В каталозі test виконайте наступну команду для пошуку файлів, які містять літери “tes” у своїй назві.

find . -name “*tes*”

У списку результатів ви повинні побачити, що всі файли були знайдені і перераховані, крім TEST.f , це пов’язано з тим, що -name повертає результати з урахуванням регістра.

Повторіть команду пошуку певного розширення файлу. Ми можемо використовувати той же самий метод для пошуку певного типу файлу. Зміна команди на пошук “*.txt*” поверне тільки тип файлу .txt.

find . -name “*.txt*”

Використовуйте -iname для повернення результатів без урахування регістру. Тут ми знову використовуємо неповний пошуковий запит “*tes *” , але використання -iname змушує команду відображати всі результати незалежно від верхнього або нижнього регістру. Тому результати включають наш файл TEST.f .

find . -iname “*tes*”

Відмінність між каталогами та файлами в Linux

У своїй стандартній формі команда find поверне будь-який збіг, незалежно від того, чи це файл або каталог. Можна додати теги до команди find, які змусять команду повертати тільки файли або повертати результати пошуку в каталозі.

Додайте каталог всередині нашого тестового каталогу під назвою test2. Використовуйте ls для підтвердження створення каталогу.

cd test

mkdir test2

ls

Запустіть команду find , яка поверне результати як по файлу, так і по каталогу. Ви повинні побачити, що результат містить всі тестові файли, а також каталог test2.

find . -iname “*test*”

Додайте тег типу f , щоб повертати тільки результати з файлу. Зверніть увагу, що в результаті каталог test2 пропущений.

find . -iname “*test*” -type f

Додайте тег -type d, щоб повертати результати тільки каталогів. Зверніть увагу, що єдиним результатом тепер має бути каталог test2 .

find . -iname “*test*” -type d

Пошук по всій файловій системі Linux

Можливо, вам доведеться обшукати всю файлову систему, щоб спробувати знайти файл.

Виконайте пошук test1.txt файлів у кореневому каталозі (/) файлової системи. Цей крок доданий для ілюстрації поширеної проблеми.

cd

find / -iname test1.txt

Ви виявите, що у вас немає дозволу на доступ до диску в багатьох папках. Зверніть увагу, що в цьому прикладі ми використовуємо / , щоб включити команду для пошуку у всіх підкаталогах.

Повторіть попередній пошук, але використовуйте sudo для виконання пошуку з рут-правами (root). Це один з найвищих рівнів прав доступу до файлів та папок.

sudo find / -iname test1.txt

Тепер ви можете шукати будь-який файл в будь-якому місці вашої системи, навіть якщо ви знаєте тільки частину його назви.

НАПИСАТИ ВІДПОВІДЬ

Коментуйте, будь-ласка!
Будь ласка введіть ваше ім'я

Євген
Євген
Євген пише для TechToday з 2012 року. Інженер за освітою. Захоплюється реставрацією старих автомобілів.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися

Статті