Загрузить PDF
Загрузить PDF
Найти файл в системе Linux довольно сложно, если не знать, как это сделать. Лучше всего воспользоваться разными командами, которые вводятся в Терминале. Освоив такие команды, вы получите полный контроль над файлами; также эти команды более функциональны, чем аналогичные поисковики в других операционных системах.
Шаги
-
Найдите файл по его имени. Такой простейший поиск выполняется при помощи утилиты find . Приведенная ниже команда будет искать файл в текущем каталоге и во всех его подкаталогах. [1] X Источник информации
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] X Источник информации
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] X Источник информации
-
Объедините команды, чтобы выполнить определенные действия по завершении поиска файлов. Команду find можно объединить с другими командами, которые обработают найденные файлы. Для этого между командой find и второй командой введите -exec , а в конце строки введите {} \;
find . -type f -perm 777 -exec chmod 755 {} \;
- Эта команда найдет в текущем каталоге (и его подкаталогах) все файлы с правами доступа 777, а потом при помощи команды chmod права доступа изменятся на 755.
Реклама
-
Установите утилиту . 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] X Источник информации
- Введите sudo updatedb и нажмите ↵ Enter .
-
Используйте . locate , чтобы выполнять простые поисковые запросы. Утилита locate работает быстро, но она не так функциональна, как утилита find . Команда locate обрабатывает простые поисковые запросы аналогично команде find .
locate -i "*.jpg"
- Эта команда найдет (во всей системе) все файлы с расширением .jpg . Здесь символ обобщения * работает так же, как у команды find .
- Как и у команды find , модификатор -i игнорирует регистр поискового запроса.
. -
Ограничьте количество результатов поиска. Если результатов поиска слишком много, сократите их при помощи модификатора -n и числа, которое определяет количество отображаемых результатов поиска.
locate -n 20 -i "*.jpg"
- Эта команда приведет к отображению первых 20 результатов, которые соответствуют поисковому запросу.
- Также можно использовать символ | , чтобы результаты поиска фильтровались командой less. Это облегчит просмотр результатов поиска.
Реклама
-
Используйте команду . grep , чтобы искать текст в файлах. Сделайте это, чтобы найти файл, который содержит определенную фразу или строку. Основной формат команды grep выглядит следующим образом:
grep -r -i "поисковый запрос" /путь/к/каталогу/
- Модификатор -r делает поиск рекурсивным, поэтому в текущем каталоге (и всех подкаталогах) будет найден любой файл, содержащий строку из поискового запроса.
- Модификатор -i указывает на то, что запрос не учитывает регистр. Чтобы учесть регистр, не вводите модификатор -i .
-
Скройте лишний текст. При выполнении команды grep (как описано выше) на экране отобразится имя файла и текст с выделенной фразой или строкой, указанной в поисковом запросе. Такой текст можно скрыть, чтобы отобразить только имя файла и путь к нему. Для этого введите следующую команду:
grep -r -i "поисковый запрос" /путь/к/каталогу/ | cut -d: -f1
-
Скройте сообщения об ошибках. Команда grep выводит сообщение об ошибке, если пытается получить доступ к папкам без надлежащих разрешений или попадает в пустые папки. Такие сообщения можно отправить в /dev/null, чтобы они не отображались на экране. [5] X Источник информации
grep -r -i "поисковый запрос" /путь/к/каталогу/ 2 >/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/
Реклама