Поради для всіх
» » Linux: пошук файлів за допомогою терміналу

Linux: пошук файлів за допомогою терміналу

Додано: 14.10.16
Автор: admin
Кожна людина за своє життя хоче встигнути зробити якомога більше справ. На жаль, вирішує це не він. Час - ось чого вічно не вистачає кожному з нас. Однак людина придумав величезна кількість способів, як прискорити ту чи іншу операцію, те чи інше дію.
Linux: пошук файлів за допомогою терміналу
Мова піде сьогодні не про такі глобальному, швидше про дрібнотному, в якомусь сенсі навіть необхідний. Про те, як здійснюється пошук файлів в Linux. Про те, як цей процес прискорити в кілька разів і як автоматизувати пошук потрібних файлів до межі.


Простий пошук файлів

Зараз буде розглянуто випадок, коли на Linux пошук файлів необхідно здійснити, знаючи тільки деякі його властивості (ім'я, формат та розмір). Знаючі люди вже зрозуміли, що для цього необхідно використовувати команду find. Отже, припустимо, у нас на комп'ютері, де-то в домашній папці, знаходиться картинка, яка називається «Покемон.јрд» але ми не пам'ятаємо, де саме вона лежить. Для того щоб не відкривати по черзі кожну папку, можна скористатися командою find, а саме прописати в терміналі:

find /home -name "Покемон.јрд" -print

Відразу ж з'явиться шлях до цього файлу. Але щоб було зрозуміліше, варто все пояснити. Ділянка «/home» означає, що пошук файлу буде проводитися в домашньому каталозі. «-name» прописується в разі, якщо пошук ведеться по імені, далі в лапках вказується повне ім'я файлу. І «-print» в кінці дає команду виведення знайдених результатів на екран.
Linux: пошук файлів за допомогою терміналу
Тепер давайте змоделюємо ситуацію, коли ви не знаєте формат файлу. У цьому випадку команда буде виглядати так:

find /home -name "Покемон*" -print

В даному випадку в кінці імені файлу ставиться «*». Це означає, що будуть знаходитися всі файли з ім'ям «Покемон», будь то картинка, документ або музика. Для того, щоб знайти файл певного формату, наприклад «.jpg», необхідно вписати:

find /home -name "*.jpg" -print

Думаємо, залежність ясна. І стало ясно, що здійснюється в Linux пошук файлів.

Пошук тексту в файлах

Багато людей звикли, що пошук в тексті певного слова або словосполучення можна провести, відкривши текст в Word або подібній програмі і провівши там пошук, але на Linux пошук тексту в файлах проводиться набагато швидше і в якійсь мірі простіше.


В першу чергу забуваємо про команду «find», вона в цьому випадку нам не допоможе. Тепер ознайомимося з командою «grep». Саме вона допоможе відшукати у величезній стіні тексту слова, які необхідні. Припустимо, у вас на комп'ютері є текстовий документ, в якому є фраза «Люблю Лінукс» і ви знаєте, що він розташований в папці «/home/user». Так от, щоб знайти в цьому документі потрібний нам текст, який необхідно ввести команду:

grep "Люблю Лінукс" /home/user/*.txt

Синтаксис тут дуже простий. Після grep в лапках зазначаються шукані слова, а далі потрібно прокласти шлях до файлу, де їх необхідно шукати, і в кінці вказати формат файлу.
Linux: пошук файлів за допомогою терміналу

Пошук великих файлів

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

find /-size +1G -print

В даному випадку ми бачимо, що зазначений розмір «+1G», це означає, що будуть перебувати файли більше 1 Гб, якщо замість плюса стояв би мінус, це означало б, що вишукувалися файли менше зазначеного розміру. Але цей метод поганий з однієї причини: якщо таких файлів виявиться дуже багато, ви дуже довго будете їх перебирати, тому є ще другий варіант. Введіть у командний рядок:

find /-mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MBt%sn",($7/1024)/1024$NF}'

Після цього вам на екран здадуться десять файлів, починаючи з самого великого. Це допоможе заощадити час на пошук відповідного варіанту для видалення. Перед виконанням цих команд рекомендується прописати команду «sudo su», щоб отримати права суперкористувача, так як пошук файлів буде зачіпати і root.

Пошук копій файлів

Часто так буває, що при довгому використанні комп'ютера на ньому з'являються дублікати вже створених файлів. Виникають вони з багатьох причин, однією з яких є необережність. Звичайно, нічим серйозним це не загрожує, але ось місце все ж займає, тому, щоб швидко видалити їх, потрібно виконати на Linux пошук дублікатів файлів.
Як і в минулий раз, зробити це можна двома способами, але зупинимося на одному, який простіше. Можна завантажити спеціальну утиліту прописавши в терміналі:

sudo apt-get install fslint

Її відмінність від інших варіантів полягає в тому, що у неї є графічний інтерфейс, що полегшить роботу з нею новачкам.
Linux: пошук файлів за допомогою терміналу
Запустивши її, можете відразу ж натискати пошук, за замовчуванням він буде проводитися в домашній директорії. При бажанні можна вибрати будь-каталог.

Альтернативні варіанти пошуку

Звичайно ж, запам'ятати всі перераховані вище команди не кожному під силу, та й, чесно кажучи, без толку, а записувати на папірець теж не варіант. Саме тому необхідно розповісти про альтернативу, яка в сто разів простіше, хоча і затратна по часу.
Першим варіантом, якщо вам необхідно знайти файл по імені, буде пошук з провідника. Просто виберіть папку, в якій імовірно знаходиться необхідний файл, і в пошуковому рядку, яка знаходиться вгорі праворуч, впишіть його назва. Туди можна вписати і формат файлу. Другий варіант підходить у випадку, якщо вам необхідно здійснити пошук рядки у файлах Linux. Скачайте LibreOffice і скопіюйте туди свій текст. Після натисніть сполучення клавіш Ctrl+F і проявилася в рядку введіть необхідне поєднання слів. Ось, в принципі, і все. Так, можна швидко знайти шукане, не запам'ятовуючи команди.

Висновок

Як видно, на Linux пошук файлів можна здійснити різними способами. Деякі з них краще, деякі гірше, все залежить від ситуації. У будь-якому випадку, прочитавши цю статтю, ви тепер можете це зробити. Користуючись командним рядком деякий час, ви запам'ятаєте більшість команд і потім зможете прискорити процес в кілька разів.