Знайти файл в системі Linux досить складно, якщо не знати, як це зробити. Найкраще скористатися різними командами, які вводяться в терміналі. Освоївши такі команди, Ви отримаєте повний контроль над файлами; також ці команди більш функціональні, ніж аналогічні пошуковики в інших операційних системах.
Кроки
Метод1З 3:
Утиліта find
Метод1З 3:
- Знайдіть файл по його імені. такий найпростіший пошук виконується за допомогою утиліти find. Наведена нижче команда буде шукати файл в поточному каталозі і у всіх його підкаталогах.[1]
Find-iname"ім'я файлу"
- Введіть-iname замість -name, щоб проігнорувати регістр у веденому імені файлу. Команда -name враховує регістр.
- Почніть пошук в кореневому каталозі. щоб запустити пошук по всій системі, до запиту додайте модифікатор /. У цьому випадку команда find шукатиме файл у всіх каталогах, починаючи з кореневого.
Find / - iname"ім'я файлу"
- Можна почати пошук в певному каталозі; для цього замініть/ на шлях до каталогу, наприклад, /home/max.
- Можна використовувати. замість /, щоб шукати файл тільки в поточному каталозі і його підкаталогах.
- Використовуйте символ Узагальнення. *, щоб знайти файли, ім'я якого відповідає частині запиту. За допомогою символу Узагальнення * можна знайти файл, повне ім'я якого невідоме, або знайти всі файли з певним розширенням.
Find /home/max -iname"*.conf"
- Ця команда знайде всі файли з розширенням .conf в папці користувача Max (і її підпапках).
- Скористайтеся цією командою, щоб знайти всі файл, імена яких відповідають частині запиту. Наприклад, якщо на комп'ютері зберігається безліч файлів, пов'язаних з WikiHow, знайдіть всі файли, ввівши"*wiki*".
- Полегшіть управління результатами пошуку.якщо результатів пошуку занадто багато, серед них складно знайти потрібний файл. Використовуйте символ |, щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд і фільтрування результатів пошуку.
Find /home/max -iname"*.conf" | less
- Знайдіть конкретні елементи. використовуйте модифікатори, щоб у результатах пошуку відобразити лише певні елементи. Можна шукати звичайні файли (f), каталоги (d), символьні посилання (l), пристрої посимвольного вводу-виводу (з) і блокові пристрої (B).
Find / - type f-iname"ім'я файлу"
- Відфільтруйте результати пошуку за розміром файлів. якщо на комп'ютері зберігається безліч файлів зі схожими іменами, але розмір шуканого файлу відомий, відфільтруйте результати пошуку за розміром файлів.
Find / - size +50M-iname"ім'я файлу"
- Ця команда знайде всі файли, розмір яких перевищує 50 МБ. Використовуйте модифікатор+ або -, щоб вказати на збільшення або зменшення розміру. Якщо модифікатора + або - ні, команда знайде файли, розмір яких точно збігається з вказаним розміром.
- Результати пошуку можна відфільтрувати по байтам (c), кілобайт (k), мегабайтам (M), гігабайт (G) або блоками по 512 байт (b). Зверніть увагу, що наведені модифікатори враховують регістр.
- Використовуйте логічні оператори (булеві оператори), щоб об'єднати пошукові фільтри. можна використовувати оператори -and, -or, -not, щоб об'єднати різні пошукові запити в один запит.[2]
Find /travelphotos -type f -size +200k -not -iname"*2015*"
- Ця команда знайде файли в папці "Travelphotos", розмір яких більше 200 кБ і в іменах яких немає числа 2015.
- Знайдіть файли по власнику або дозволам.якщо потрібно знайти файл, що належить конкретному користувачеві, або файл з певними правами доступу, можна звузити пошук.
Find / - user max-iname"ім'я файлу" find / - group users-iname "ім'я файлу" find / - perm 777 - iname "ім'я файлу"
- Наведені вище команди знайдуть файл певного користувача, групи або з конкретними правами доступу. Також в запиті ім'я файлу можна опустити, щоб знайти всі файли, відповідні зазначеним критеріям. Наприклад, командаfind / -perm 777 знайде всі файли з правами доступу 777 (без обмежень).[3]
- Об'єднайте команди, щоб виконати певні дії після завершення пошуку файлів. Команду find можна об'єднати з іншими командами, які оброблять знайдені файли. Для цього між командою find і другою командою введіть -exec, а в кінці рядка введіть {} \;
Find . -type f -perm777 -exec chmod 755 {} \;
- Ця команда знайде в поточному каталозі (і його підкаталогах) всі файли з правами доступу 777, а потім за допомогою командиchmod права доступу зміняться на 755.
Метод2 З 3:
Утиліта locate
Метод2 З 3:
- Встановіть утиліту.locate. Ця утиліта працює швидше утиліти find, тому що не сканує файлову систему по-справжньому. Однак, не всі дистрибутиви Linux поставляються з утилітою locate, тому введіть наступні команди, щоб встановити її:
- Введітьsudo apt-get update натисніть ↵ Enter.
- Debian і Ubuntu зробіть наступне: введітьsudo apt-get install mlocate натисніть ↵ Enter. Якщо locate вже встановлена, відобразиться повідомлення mlocate is already the newest version (встановлена ОСТАННЯ версія).
- В Arch Linux використовуйте менеджер пакетів pacman:pacman-Syu mlocate
- У Gentoo використовуйте emerge:emerge mlocate
- Оновіть базу утиліти.locate. Ця утиліта не зможе знайти що-небудь без попередньо створеної і оновленої бази (в якій зберігається подобу зліпка з файлової системи). База оновлюється щодня в автоматичному режимі, але це можна зробити і вручну. Оновіть базу вручну, щоб негайно приступити до роботи з locate.[4]
- Введітьsudo updatedb натисніть ↵ Enter.
- Використовуйте. locate, щоб виконувати прості пошукові запити. Утиліта locate працює швидко, але вона не така функціональна, як утиліта find. Команда locate обробляє прості пошукові запити аналогічно команді find.
Locate -i"*.jpg"
- Ця команда знайде (у всій системі) всі файли з розширенням.jpg. Тут символ Узагальнення * працює так само, як у команди find.
- Як і у командиfind, модифікатор -i ігнорує регістр пошукового запиту.
.
- Обмежте кількість результатів пошуку. якщо результатів пошуку занадто багато, скоротіть їх за допомогою модифікатора -n і числа, яке визначає кількість відображуваних результатів пошуку.
Locate -n20 -i "*.jpg"
- Ця команда призведе до відображення перших 20 результатів, які відповідають пошуковому запиту.
- Також можна використовувати символ|, щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд результатів пошуку.
Метод3 З 3:
Пошук тексту у файлах
Метод3 З 3:
- Використовуйте команду. grep, щоб шукати текст у файлах. Зробіть це, щоб знайти файл, який містить певну фразу або рядок. Основний формат команди grep виглядає наступним чином:
Grep-r-i"пошуковий запит" / шлях / до / каталогу/
- Модифікатор-r робить пошук рекурсивним, тому в поточному каталозі (і всіх підкаталогах) буде знайдений будь-який файл, що містить рядок з пошукового запиту.
- Модифікатор-i вказує на те, що запит не враховує регістр. Щоб врахувати регістр, не вводьте модифікатор -i.
- Сховайте зайвий текст. при виконанні команди grep (як описано вище) на екрані відобразиться ім'я файлу і текст з виділеною фразою або рядком, зазначеної в пошуковому запиті. Такий текст можна приховати, щоб відобразити тільки ім'я файлу і шлях до нього. Для цього введіть наступну команду:
Grep-r-i"пошуковий запит" /шлях/до/каталогу/ | cut-d: -f1
- Приховуйте повідомлення про помилки. Команда grep виводить повідомлення про помилку, якщо намагається отримати доступ до папок без належних дозволів або потрапляє в порожні папки. Такі повідомлення можна відправити в / dev / null, щоб вони не відображалися на екрані.[5]
Grep-r-i"пошуковий запит" / шлях / до / каталогу / 2gt; / dev / null
Джерела
- ↑ Https://www.digitalocean.com/community/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps
- ↑ Http://www.codecoffee.com/tipsforlinux/articles/21.html
- ↑ Http://linuxcommand.org/lts0070.php
- ↑ Http://www.linfo.org/locate.html
- ↑ Http://www.cyberciti.biz/faq/howto-search-find-file-for-text-string/