Загрузить PDF Загрузить PDF

Найти файл в системе Linux довольно сложно, если не знать, как это сделать. Лучше всего воспользоваться разными командами, которые вводятся в Терминале. Освоив такие команды, вы получите полный контроль над файлами; также эти команды более функциональны, чем аналогичные поисковики в других операционных системах.

Метод 1
Метод 1 из 3:

Утилита find

Загрузить PDF
  1. Такой простейший поиск выполняется при помощи утилиты find . Приведенная ниже команда будет искать файл в текущем каталоге и во всех его подкаталогах. [1]
    find -iname "имя файла" 
    
    • Введите -iname вместо -name , чтобы проигнорировать регистр в веденном имени файла. Команда -name учитывает регистр.
  2. Чтобы запустить поиск по всей системе, к запросу добавьте модификатор / . В этом случае команда find будет искать файл во всех каталогах, начиная с корневого.
    find / -iname "имя файла" 
    
    • Можно начать поиск в определенном каталоге; для этого замените / на путь к каталогу, например, /home/max .
    • Можно использовать . вместо / , чтобы искать файл только в текущем каталоге и его подкаталогах.
  3. * , чтобы найти файлы, имя которого соответствует части запроса. При помощи символа обобщения * можно найти файл, полное имя которого неизвестно, или найти все файлы с определенным расширением.
    find /home/max -iname "*.conf" 
    
    • Эта команда найдет все файлы с расширением .conf в папке пользователя Max (и ее подпапках).
    • Воспользуйтесь этой командой, чтобы найти все файл, имена которых соответствуют части запроса. Например, если на компьютере хранится множество файлов, связанных с WikiHow, найдите все файлы, введя "*wiki*" .
  4. Если результатов поиска слишком много, среди них сложно найти нужный файл. Используйте символ | , чтобы результаты поиска фильтровались командой less. Это облегчит просмотр и фильтрование результатов поиска.
    find /home/max -iname "*.conf" 
     | 
    less
  5. Используйте модификаторы, чтобы в результатах поиска отобразить только определенные элементы. Можно искать обычные файлы ( f ), каталоги ( d ), символьные ссылки ( l ), устройства посимвольного ввода-вывода ( с ) и блочные устройства ( b ).
    find / -type f -iname "имя файла" 
    
  6. Если на компьютере хранится множество файлов с похожими именами, но размер искомого файла известен, отфильтруйте результаты поиска по размеру файлов.
    find / -size +50M -iname "имя файла" 
    
    • Эта команда найдет все файлы, размер которых превышает 50 МБ. Используйте модификатор + или - , чтобы указать на увеличение или уменьшение размера. Если модификатора + или - нет, команда найдет файлы, размер которых точно совпадает с указанным размером.
    • Результаты поиска можно отфильтровать по байтам ( c ), килобайтам ( k ), мегабайтам ( M ), гигабайтам ( G ) или блокам по 512 байт ( b ). Обратите внимание, что приведенные модификаторы учитывают регистр.
  7. Используйте логические операторы (булевы операторы), чтобы объединить поисковые фильтры. Можно использовать операторы -and , -or , -not , чтобы объединить различные поисковые запросы в один запрос. [2]
    find /travelphotos -type f -size +200k -not -iname "*2015*" 
    
    • Эта команда найдет файлы в папке «Travelphotos», размер которых больше 200 кБ и в именах которых нет числа 2015.
  8. Если нужно найти файл, принадлежащий конкретному пользователю, или файл с определенными правами доступа, можно сузить поиск.
    find / -user max -iname "имя файла" 
    find / -group users -iname "имя файла" 
    find / -perm 777 
    -iname "имя файла" 
    
    • Приведенные выше команды найдут файл определенного пользователя, группы или с конкретными правами доступа. Также в запросе имя файла можно опустить, чтобы найти все файлы, соответствующие указанным критериям. Например, команда find / -perm 777 найдет все файлы с правами доступа 777 (без ограничений). [3]
  9. Объедините команды, чтобы выполнить определенные действия по завершении поиска файлов. Команду find можно объединить с другими командами, которые обработают найденные файлы. Для этого между командой find и второй командой введите -exec , а в конце строки введите {} \;
    find . -type f -perm 777 
    -exec chmod 755 
     {} 
     \; 
    
    • Эта команда найдет в текущем каталоге (и его подкаталогах) все файлы с правами доступа 777, а потом при помощи команды chmod права доступа изменятся на 755.
    Реклама
Метод 2
Метод 2 из 3:

Утилита locate

Загрузить PDF
  1. 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
  2. locate . Эта утилита не сможет найти что-либо без предварительно созданной и обновленной базы (в которой хранится подобие слепка с файловой системы). База обновляется ежедневно в автоматическом режиме, но это можно сделать и вручную. Обновите базу вручную, чтобы незамедлительно приступить к работе с locate . [4]
    • Введите sudo updatedb и нажмите Enter .
  3. locate , чтобы выполнять простые поисковые запросы. Утилита locate работает быстро, но она не так функциональна, как утилита find . Команда locate обрабатывает простые поисковые запросы аналогично команде find .
    locate -i "*.jpg" 
    
    • Эта команда найдет (во всей системе) все файлы с расширением .jpg . Здесь символ обобщения * работает так же, как у команды find .
    • Как и у команды find , модификатор -i игнорирует регистр поискового запроса.
  4. .
  5. Если результатов поиска слишком много, сократите их при помощи модификатора -n и числа, которое определяет количество отображаемых результатов поиска.
    locate -n 20 
    -i "*.jpg" 
    
    • Эта команда приведет к отображению первых 20 результатов, которые соответствуют поисковому запросу.
    • Также можно использовать символ | , чтобы результаты поиска фильтровались командой less. Это облегчит просмотр результатов поиска.
    Реклама
Метод 3
Метод 3 из 3:

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

Загрузить PDF
  1. grep , чтобы искать текст в файлах. Сделайте это, чтобы найти файл, который содержит определенную фразу или строку. Основной формат команды grep выглядит следующим образом:
    grep -r -i "поисковый запрос" 
    /путь/к/каталогу/
    • Модификатор -r делает поиск рекурсивным, поэтому в текущем каталоге (и всех подкаталогах) будет найден любой файл, содержащий строку из поискового запроса.
    • Модификатор -i указывает на то, что запрос не учитывает регистр. Чтобы учесть регистр, не вводите модификатор -i .
  2. При выполнении команды grep (как описано выше) на экране отобразится имя файла и текст с выделенной фразой или строкой, указанной в поисковом запросе. Такой текст можно скрыть, чтобы отобразить только имя файла и путь к нему. Для этого введите следующую команду:
    grep -r -i "поисковый запрос" 
    /путь/к/каталогу/ | 
    cut -d: -f1
  3. Команда grep выводит сообщение об ошибке, если пытается получить доступ к папкам без надлежащих разрешений или попадает в пустые папки. Такие сообщения можно отправить в /dev/null, чтобы они не отображались на экране. [5]
    grep -r -i "поисковый запрос" 
    /путь/к/каталогу/ 2 
    >/dev/null
    Реклама

Об этой статье

Эту страницу просматривали 46 702 раза.

Была ли эта статья полезной?

Реклама