Як знайти файли і папки в Linux за допомогою командного рядка
Більшість людей використовують графічний менеджер файлів для пошуку файлів у Linux, таких як Nautilus у Gnome, Dolphin у KDE та Thunar у Xfce. Однак існує кілька способів використання командного рядка для пошуку файлів у Linux, незалежно від того, який менеджер настільних ПК ви використовуєте.
Використання команди "Знайти"
Команда "find" дозволяє шукати файли, для яких відомі приблизні назви файлів. Найпростіша форма команди шукає файли в поточному каталозі і рекурсивно через підкаталоги, які відповідають заданим критеріям пошуку. Ви можете шукати файли за назвою, власником, групою, типом, дозволами, датою та іншими критеріями.
Ввівши наступну команду, у списку буде показано всі файли, знайдені в поточному каталозі.
знайти .
Точка після “find” вказує поточний каталог.
Щоб знайти файли, які відповідають певному шаблону, використовуйте -ім'я
аргумент. Ви можете використовувати метасимволи назв файлів (наприклад, *
), але ви повинні або ввести символ () \ T
) перед кожним з них або вкласти їх у лапки.
Наприклад, якщо ми хочемо знайти всі файли, які починаються з "pro" у каталозі Документи, ми будемо використовувати cd Документи /
команду, щоб перейти до каталогу Документи, а потім введіть таку команду:
знайти. -name pro \ t
Перераховані всі файли в поточному каталозі, що починаються з "pro".
ПРИМІТКА. За замовчуванням команда find є чутливою до регістру. Якщо ви хочете, щоб пошук слова чи фрази нечутливий до регістру, використовуйте -iname
з командою find. Це нечутлива до версії версія -ім'я
команду.
Якщо знайти
не знаходить жодного файлу, що відповідає вашим критеріям, він не виробляє жодного виводу.
Команда find має багато варіантів для уточнення пошуку. Для отримання додаткової інформації про команду find виконайте команду людина знаходить
у вікні терміналу та натисніть клавішу Enter.
Використання команди Locate
Команда locate швидше, ніж команда find, оскільки вона використовує раніше побудовану базу даних, тоді як команда пошуку шукає в реальній системі, через всі фактичні каталоги і файли. Команда locate повертає список всіх імен шляхів, що містять вказану групу символів.
База даних періодично оновлюється з cron, але ви також можете оновити її самостійно в будь-який час, щоб отримати кращі результати. Для цього введіть таку команду у запиті:
sudo updatedb
Введіть пароль під час запиту.
Основна форма команди locate знаходить всі файли у файловій системі, починаючи з кореня, які містять всі або будь-яку частину критеріїв пошуку.
знайдіть дані
Наприклад, вищевказана команда знайшла два файли, що містять "mydata" і один файл, що містить "дані".
Якщо ви хочете знайти всі файли або каталоги, які містять точно і тільки ваші критерії пошуку, використовуйте -b
з командою locate наступним чином.
data -bate
Зворотна коса риса у вищезазначеній команді є символом глобування, який забезпечує спосіб розширення символів підстановки у неспецифічному імені файлу у набір конкретних імен файлів. Шаблон - символ, який може бути замінений одним або декількома символами при оцінці виразу. Найпоширеніші символи підстановки - знак питання ( ?
), що означає один символ і зірочку ( *
), що означає суміжний рядок символів. У наведеному вище прикладі зворотна слеш забороняє неявну заміну “mydata” на “* mydata *”, тому ви отримаєте лише результати, що містять “mydata”.
Команда mlocate - це нова реалізація методу locate. Він індексує всю файлову систему, але результати пошуку включають лише файли, до яких має доступ поточний користувач. Коли ви оновлюєте базу даних mlocate, вона зберігає інформацію бази даних часу. Це дозволяє mlocate дізнатися, чи змінювався вміст каталогу без повторного читання вмісту, а оновлення бази даних швидше та менш вимогливі до жорсткого диска.
Коли ви встановлюєте mlocate, бінарний файл / usr / bin / find змінюється, щоб вказувати на mlocate. Щоб встановити mlocate, якщо він ще не включений у ваш дистрибутив Linux, введіть у команді наступну команду.
sudo apt-get install mlocate
ПРИМІТКА. Далі ми покажемо вам команду, яка дозволить вам визначити, де знаходиться виконуваний файл команди, якщо він існує..
Команда mlocate не використовує той же файл бази даних, що й стандартна команда locate. Таким чином, ви можете створити базу даних вручну, ввівши наступну команду у запиті:
sudo /etc/cron.daily/mlocate
Команда mlocate не працюватиме, поки база даних не буде створена вручну або коли скрипт виконується з cron.
Для отримання додаткової інформації про команду locate або mlocate введіть людина знайти
або людина mlocate
у вікні терміналу та натисніть клавішу Enter. Для обох команд відображається той самий екран допомоги.
Використання команди Command
Команда “which” повертає абсолютний шлях виконуваного файлу, який викликається при видачі команди. Це корисно для пошуку розташування виконуваного файлу для створення ярлика програми на робочому столі, на панелі або в іншому місці менеджера робочого столу. Наприклад, набравши команду який Firefox
відображає результати, показані на зображенні нижче.
За замовчуванням команда, яка відображає лише перший відповідний виконуваний файл. Для відображення всіх відповідних виконуваних файлів використовуйте -a
з командою:
які -я Firefox
Можна виконувати пошук декількох виконуваних файлів одночасно, як показано на зображенні нижче. Відображаються лише шляхи до виконуваних файлів. У наведеному нижче прикладі знайдено лише виконуваний файл "ps".
ПРИМІТКА. Команда шукає лише поточну змінну PATH користувача. Якщо ви виконуєте пошук виконуваного файлу, доступного лише для користувача root як звичайного користувача, результати не відображатимуться.
Для отримання додаткової інформації про те, яку команду, введіть "man which" (без лапок) у командному рядку у вікні Terminal і натисніть Enter.
Використовуючи команду Whereis
Команда whereis використовується, щоб дізнатися, де знаходяться файли двійкових, вихідних і man сторінок для команди. Наприклад, введення тексту whereis firefox
на підказці відображаються результати, як показано на зображенні нижче.
Якщо ви бажаєте показувати лише шлях до виконуваного файлу, а не шляхи до вихідних сторінок, використовуйте -b
опції. Наприклад, команда де -b firefox
відображатиметься лише / usr / bin / firefox
як результат. Це зручно, тому що ви, швидше за все, шукатимете виконуваний файл програми частіше, ніж ви шукали б джерельні та чоловічі сторінки для цієї програми. Можна також шукати лише вихідні файли ( -s
) або лише для сторінок чоловіка ( -m
).
Для отримання додаткової інформації про команду whereis введіть людина де
у вікні терміналу та натисніть клавішу Enter.
Розуміння різниці між командою Whereis і командою
Команда whereis показує розташування для двійкових, вихідних і man сторінок для команди, тоді як команда лише показує розташування двійкової команди для команди \ t.
Команда whereis шукає список специфічних каталогів для файлів двійкових, вихідних і man-файлів, тоді як команда шукає каталоги, перелічені в змінному середовища поточного користувача PATH. Для команди whereis список конкретних каталогів можна знайти в розділі FILES на сторінках man для команди.
Коли справа доходить до результатів, які відображаються за замовчуванням, команда whereis відображає все, що знаходить, тоді як команда відображає лише перший виконуваний файл. Ви можете змінити це, використовуючи -a
опцію, обговорювану раніше, для якої команди.
Оскільки команда whereis використовує тільки шляхи, які жорстко закодовані в команді, ви не завжди зможете знайти те, що шукаєте. Якщо ви шукаєте програму, яку, на вашу думку, може бути встановлена в каталозі, який не вказано на сторінках man для команди whereis, ви можете скористатися командою з -a
можливість знайти всі входження команди у всій системі.