Як знайти файли і теки в Linux за допомогою командного рядка

Як знайти файли і теки в Linux за допомогою командного рядка

Більшість людей використовують графічний файловий менеджер для пошуку файлів в Linux, наприклад, Nautilus в Gnome, Dolphin в KDE і Thunar в Xfce. Однак є декілька способів використовувати командний рядок для пошуку файлів у Linux, незалежно від того, який менеджер стільниці ви використовуєте.

Використання команди пошуку

Команда «знайти» дозволяє вам шукати файли, для яких ви знаєте приблизні назви файлів. Найпростіша форма команди шукає файли в поточному каталозі і рекурсивно через його підкаталоги, які відповідають наданим критеріям пошуку. Ви можете шукати файли за назвою, власником, групою, типом, роздільною здатністю, датою та іншими критеріями.

Після введення наступної команди у командному рядку буде показано всі файли, знайдені у поточному каталозі.

знаходити.

Точка після «знайти» вказує на поточний каталог.

Щоб знайти файли, які відповідають певному шаблону, скористайтеся аргументом -name. Ви можете використовувати метасимволи імені файлу (такі як *), але ви повинні або помістити escape-символ (\) перед кожним з них, або укласти їх в лапки.

Наприклад, якщо ми хочемо знайти всі файли, що починаються з «pro», в каталозі «Документи», ми б використовували команду cd Documents/для переходу в каталог «Документи», а потім введіть наступну команду:

знаходити. назва про\*


Всі файли у поточній теці, починаючи з «pro», перелічено.

ПРИМІТКА. Типово для команди find враховується регістр. Якщо ви хочете, щоб під час пошуку за словом або фразою не -iname регістр, використовуйте параметр -iname з командою find. Це нечутлива версія команди -name.

Якщо find не знаходить файли, що відповідають вашим критеріям, вона не видає ніяких результатів.

Команда find має багато параметрів, доступних для уточнення пошуку. Щоб дізнатися більше про команду find, виконайте man find у вікні термінала і натисніть Enter.

Використання команди Locate

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

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

sudo updatedb


Введіть ваш пароль під час запиту.

Базова форма команди locate знаходить всі файли у файловій системі, починаючи з кореня, які містять всі або будь-яку частину критеріїв пошуку.

знайти mydata

Наприклад, вищенаведена команда виявила два файли, що містять «mydata», і один файл, що містить «data».

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


знайдіть -b '\mydata '

Зворотна косова риса в наведеній вище команді - це символ з глобалізацією, який забезпечує спосіб розширення символів підстановки в неспецифічній назви файлу в набір певних імен файлів. Підстановковий знак - це символ, який може бути замінений одним або кількома символами при оцінці виразу. Найбільш поширеними підстановочними символами є знак питання (?), що позначає один символ, і зірочка (*), що позначає безперервний рядок символів. У наведеному вище прикладі зворотна коса риса вимикає неявну заміну «mydata» на «* mydata *», тому ви отримаєте тільки результати, що містять «mydata».

Команда mlocate - це нова реалізація locate. Він індексує всю файлову систему, але результати пошуку включають тільки файли, до яких у поточного користувача є доступ. Коли ви оновлюєте базу даних mlocate, вона зберігає інформацію про мітки часу в базі даних. Це дозволяє mlocate знати, чи змінився вміст каталогу без повторного читання вмісту, і робить оновлення бази даних більш швидкими і менш вимогливими на вашому жорсткому диску.

Коли ви встановили mlocate, двійковий файл/usr/bin/locate зміниться так, щоб вказувати на mlocate. Щоб встановити mlocate, якщо його ще не включено до вашого дистрибутива Linux, введіть наступну команду у командному рядку:

sudo apt-get встановити mlocate


ПРИМІТКА. Пізніше в цій статті ми покажемо вам команду, яка дозволить вам визначити, де знаходиться виконуваний файл команди, якщо він існує.

Команда mlocate не використовує той самий файл бази даних, що і стандартна команда locate. Тому ви можете створити базу даних вручну, ввівши в командному рядку наступну команду:

sudo /etc/cron.daily/mlocate

Команда mlocate не буде працювати, поки база даних не буде створена ні вручну, ні коли скрипт запускається з cron.

Щоб дізнатися більше про команду locate або mlocate, введіть man locate або man mlocate у вікні термінала і натисніть Enter. Для обох команд відображається один і той самий екран довідки.


За допомогою команди

Команда which повертає абсолютний шлях до виконуваного файлу, який викликається під час виконання команди. Це корисно при пошуку розташування виконуваного файлу для створення ярлика для програми на стільниці, на панелі або в іншому місці в менеджері стільниці. Наприклад, набравши команду, which firefox відобразить результати, показані на малюнку нижче.

За замовчуванням команда which показує тільки перший відповідний виконуваний файл. Щоб показати всі виконувані файли, скористайтеся параметром -a з командою:

який-Firefox

Ви можете шукати декілька виконуваних файлів одночасно, як показано на наступному малюнку. Показує лише шляхи до найденого виконуваного файлу. У наведеному нижче прикладі було знайдено лише виконуваний файл «ps».

ПРИМІТКА. Команда which шукає тільки змінну PATH поточного користувача. Якщо ви шукаєте виконуваний файл, який доступний тільки для користувача root як звичайний користувач, результати не будуть відображатися.

Щоб дізнатися більше про команду which, введіть «man which» (без лапок) у командному рядку у вікні термінала і натисніть Enter.

Використання команди Whereis

Команда whereis використовується для того, щоб дізнатися, де знаходяться двійкові файли, файли вихідного коду та довідкові файли для команди. Наприклад, під час введення whereis firefox у whereis firefox рядок буде показано результати, як показано на наступному малюнку.

Якщо ви бажаєте, щоб буде показано лише шлях до виконуваного файлу, а не шляхи до вихідної та довідкової сторінок, скористайтеся параметром -b. Наприклад, команда whereis -b firefox буде показувати тільки/usr/bin/firefox як результат. Це зручно, тому що ви, швидше за все, будете шукати виконуваний файл програми частіше, ніж пошукати вихідні та довідкові сторінки для цієї програми. Ви також можете шукати тільки вихідні файли (-s) або лише довідкові сторінки (-m).

Щоб дізнатися більше про команду whereis, введіть man whereis у вікні термінала і натисніть Enter.

Розуміння різниці між командою Whereis і командою Which

Команда whereis показує розташування двійкових, вихідних і довідкових сторінок для команди, тоді як команда which показує тільки місце розташування двійкового файлу для команди.

Команда whereis переглядає список конкретних каталогів для двійкових, вихідних файлів і файлів man, тоді як команда which шукає каталоги, перелічені в змінній середовища PATH поточного користувача. Для команди whereis список певних каталогів можна знайти в розділі FILES на сторінках довідника за командою.

Коли справа доходить до результатів, що відображаються за замовчуванням, команда whereis відображає все, що знаходить, тоді як команда which відображає тільки перший виконуваний файл, який знаходить. Ви можете змінити це за допомогою параметра -a, який обговорювався раніше, для команди which.

Оскільки команда whereis використовує тільки шляхи, жорстко запрограмовані в команді, ви не завжди можете знайти те, що шукаєте. Якщо ви шукаєте програму, яка, на вашу думку, може бути встановлена в каталозі, не вказаному на сторінках керівництва для команди whereis, ви можете використовувати команду which з параметром -a щоб знайти всі входження команди в системі.