Поиск по сайту:

Как искать файлы в Linux из командной строки

Если у вас возникли проблемы с поиском файлов в вашем дистрибутиве Linux, есть встроенный инструмент командной строки, который значительно облегчит вашу работу.

Я использую Linux на протяжении десятилетий, и, хотя командная строка для меня вторая натура, я по-прежнему предпочитаю использовать инструменты с графическим интерфейсом, поскольку они, как правило, гораздо более эффективны, чем их аналоги на базе терминала. Однако есть одна задача, для решения которой я всегда обращаюсь к командной строке — это поиск файлов.

Да, для этой цели доступно множество инструментов с графическим интерфейсом, и многие среды рабочего стола интегрируют эту функцию в меню своих приложений. Однако я считаю, что некоторые из этих параметров не подходят для поиска файлов, а их индексирование иногда может приводить к замедлению работы системы. По этим причинам я предпочитаю открыть окно терминала и найти нужный файл.

Единственным недостатком этого метода является то, что, в отличие от использования графического интерфейса, после того как файл найден, вам придется открыть его вручную. Инструмент с графическим интерфейсом найдет файл и позволит вам просто щелкнуть (или дважды щелкнуть), чтобы открыть его. С помощью параметра командной строки вам будет показано местоположение файла. Затем вам нужно будет открыть соответствующее приложение и открыть файл через меню «Файл» > «Открыть». Однако этот ручной процесс — это компромисс, который я готов принять ради скорости и точности инструмента командной строки.

Позвольте мне показать вам, как использовать этот инструмент.

Как найти файл из CLI

Что вам понадобится: Единственное, что вам понадобится для этой задачи, — это работающий экземпляр практически любого дистрибутива Linux. Я использую команду find по двум причинам: она установлена по умолчанию и ее легко использовать. Позвольте мне показать вам, как легко найти файл в Linux.

1. Основное использование команды find

Откройте окно терминала из меню рабочего стола. Открыв приложение терминала, введите синтаксис основной команды поиска:

find -name FILE

В приведенной выше команде ФАЙЛ — это имя файла, который вы ищете.

Теперь позвольте мне объяснить пару вещей. Прежде всего, вы называете имя, соответствующее шаблону. Вы можете использовать find без имени, но он не найдет искомый файл, если вы не находитесь в правильном каталоге, в котором находится файл. Это ограничение, конечно, практически бесполезно, поэтому всегда не забывайте добавлять -имя к команде, и оно найдет нужный файл, независимо от того, где вы запустили команду.

Во-вторых, FILE чувствителен к регистру. Если вы ищете файл с именем MyFile и используете команду find -name myfile, find не сможет найти этот файл. В-третьих, команда find сможет искать файлы только в тех каталогах, на просмотр которых у вас есть разрешение. Если find обнаружит каталог, к которому у вас нет доступа, вы получите сообщение об ошибке Permission Denied.

2. Хитрость и ловушка

Допустим, вы ищете MyFile.txt. Вы можете просто запустить команду:

find -name MyFile.txt

Но что, если у вас есть файлы с именами MyFile.txt, MyFile,odt и MyFile.rtf, и вы хотите знать, где они все расположены? В этой ситуации вы можете использовать подстановочный знак *, например:

find -name MyFile.*

Теперь find выполнит поиск всех экземпляров MyFile и сообщит, где они находятся.

Однако в этом трюке есть ловушка. Допустим, у вас есть MyFile.rtf в вашем домашнем каталоге (он же ~/), MyFile.odt в каталоге «Загрузки» и MyFile.txt в каталоге «Документы».

Если вы находитесь в своем домашнем каталоге и ввели команду find -name MyFile.*, команда найдет MyFile.rtf в домашнем каталоге и прекратит поиск.

Но если вы находитесь в корневом каталоге вашей системы (он же /) и запускаете команду find , она найдет все три файла с выводом, подобным этому:

./jack/MyFile.rtf
./jack/Downloads/MyFile.odt
./jack/Documents/MyFile.txt

Есть еще один способ обойти эту ловушку: вы можете поместить имя файла в кавычки, например:

find -name "MyFile.*"

Даже если вы находитесь в своем домашнем каталоге, find продолжит поиск после того, как обнаружит первый экземпляр файла. Мой совет — выработайте привычку всегда использовать кавычки для имен файлов.

Вот так легко найти файлы в Linux из командной строки.

Статьи по данной тематике