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

Большинство людей используют графический файловый менеджер для поиска файлов в Linux, например, Nautilus в Gnome, Dolphin в KDE и Thunar в Xfce. Однако есть несколько способов использовать командную строку для поиска файлов в Linux, независимо от того, какой менеджер рабочего стола вы используете.

Использование команды поиска

Команда «найти» позволяет вам искать файлы, для которых вы знаете приблизительные имена файлов. Простейшая форма команды ищет файлы в текущем каталоге и рекурсивно через его подкаталоги, которые соответствуют предоставленным критериям поиска. Вы можете искать файлы по имени, владельцу, группе, типу, разрешениям, дате и другим критериям.

При вводе следующей команды в командной строке выводятся все файлы, найденные в текущем каталоге.

 find. 

Точка после «найти» указывает текущий каталог.

Чтобы найти файлы, которые соответствуют определенному шаблону, используйте аргумент -name . Вы можете использовать метасимволы имени файла (например, * ), но вы должны либо поместить escape-символ ( \ ) перед каждым из них, либо заключить их в кавычки.

Например, если мы хотим найти все файлы, начинающиеся с «pro», в каталоге «Документы», мы бы использовали команду cd Documents/, чтобы перейти в каталог «Документы», а затем введите следующую команду :

 найти. имя pro \ * 

Все файлы в текущем каталоге, начиная с «pro», перечислены.

ПРИМЕЧАНИЕ. По умолчанию для команды find учитывается регистр. Если вы хотите, чтобы при поиске по слову или фразе не учитывался регистр символов, используйте параметр -iname с командой find. Это нечувствительная к регистру версия команды -name .

Если find не находит никаких файлов, соответствующих вашим критериям, он не выдает никаких результатов.

Команда find имеет много опций, доступных для уточнения поиска. Для получения дополнительной информации о команде поиска запустите man find в окне терминала и нажмите Enter.

Использование команды Locate

Команда locate работает быстрее, чем команда find, поскольку она использует ранее созданную базу данных, тогда как команда find выполняет поиск в реальной системе по всем фактическим каталогам и файлам. Команда locate возвращает список всех путей, содержащих указанную группу символов.

База данных периодически обновляется из cron, но вы также можете обновлять ее самостоятельно в любое время, чтобы вы могли получать самые свежие результаты. Для этого введите в командной строке следующую команду:

 sudo updatedb 

Введите ваш пароль при появлении запроса.

Базовая форма команды locate находит все файлы в файловой системе, начиная с корня, которые содержат все или любую часть критериев поиска.

 найдите mydata 

Например, вышеприведенная команда обнаружила два файла, содержащих «mydata», и один файл, содержащий «data».

Если вы хотите найти все файлы или каталоги, которые содержат в точности и только ваши критерии поиска, используйте параметр -b с командой locate, как показано ниже.

 locate -b ‘\ mydata’ 

Обратная косая черта в приведенной выше команде - это символ с глобализацией, который обеспечивает способ расширения символов подстановки в неконкретном имени файла в набор конкретных имен файлов. Подстановочный знак - это символ, который может быть заменен одним или несколькими символами при оценке выражения. Наиболее распространенными подстановочными символами являются знак вопроса (? ), который обозначает один символ, и звездочка ( * ), которая обозначает непрерывную строку символов. В приведенном выше примере обратная косая черта отключает неявную замену «mydata» на «* mydata *», поэтому вы получите только результаты, содержащие «mydata».

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

Когда вы устанавливаете mlocate, двоичный файл/usr/bin/locate изменится так, чтобы указывать на mlocate. Чтобы установить mlocate, если он еще не включен в ваш дистрибутив Linux, введите в командной строке следующую команду.

 sudo apt-get install mlocate 

ПРИМЕЧАНИЕ. Позже в этой статье мы покажем вам команду, которая позволит вам определить, где находится исполняемый файл команды, если он существует.

Команда mlocate не использует тот же файл базы данных, что и стандартная команда locate. Поэтому вы можете создать базу данных вручную, введя в командной строке следующую команду:

 sudo /etc/cron.daily/mlocate 

Команда mlocate не будет работать, пока база данных не будет создана ни вручную, ни когда скрипт запускается из cron.

Для получения дополнительной информации о команде locate или mlocate введите man locate или man mlocate в окне терминала и нажмите Enter. Для обеих команд отображается один и тот же экран справки.

Используя какую команду

Команда «which» возвращает абсолютный путь к исполняемому файлу, который вызывается при выполнении команды. Это полезно при поиске местоположения исполняемого файла для создания ярлыка для программы на рабочем столе, на панели или в другом месте в менеджере рабочего стола. Например, при вводе команды which firefox отображаются результаты, показанные на рисунке ниже.

По умолчанию команда which отображает только первый соответствующий исполняемый файл. Чтобы отобразить все соответствующие исполняемые файлы, используйте параметр -a с командой:

 which -a firefox 

Вы можете искать несколько исполняемых файлов одновременно, как показано на следующем рисунке. Отображаются только пути к найденным исполняемым файлам. В приведенном ниже примере был найден только исполняемый файл «ps».

ПРИМЕЧАНИЕ. Команда which ищет только переменную PATH текущего пользователя. Если вы ищете исполняемый файл, который доступен только для пользователя root как обычный пользователь, результаты не будут отображаться.

Для получения дополнительной информации о команде which введите «man which» (без кавычек) в командной строке в окне терминала и нажмите Enter.

Использование команды Whereis

Команда whereis используется для того, чтобы узнать, где находятся двоичные файлы, файлы исходного кода и справочные файлы для команды. Например, при вводе whereis firefox в командной строке отобразятся результаты, как показано на следующем рисунке.

Если вы хотите, чтобы отображался только путь к исполняемому файлу, а не пути к исходной и справочной страницам, используйте параметр -b . Например, команда whereis -b firefox будет отображать только /usr/bin/firefox в качестве результата. Это удобно, потому что вы, скорее всего, будете искать исполняемый файл программы чаще, чем поискать исходные и справочные страницы для этой программы. Вы также можете искать только исходные файлы ( -s ) или только справочные страницы ( -m ).

Для получения дополнительной информации о команде whereis введите man whereis в окне терминала и нажмите Enter.

Понимание разницы между командой Whereis и командой Which

Команда whereis показывает расположение двоичных файлов, исходных и справочных страниц для команды, тогда как команда which показывает только местоположение двоичного файла для этой команды.

Команда whereis просматривает список конкретных каталогов для двоичных, исходных файлов и файлов man, тогда как команда which ищет каталоги, перечисленные в переменной окружения PATH текущего пользователя. Для команды whereis список определенных каталогов можно найти в разделе FILES на страницах руководства для команды.

Когда дело доходит до результатов, отображаемых по умолчанию, команда whereis отображает все, что находит, тогда как команда which отображает только первый исполняемый файл, который находит. Вы можете изменить это, используя параметр -a , который обсуждался ранее, для команды which.

Поскольку команда whereis использует только пути, жестко запрограммированные в команде, вы не всегда можете найти то, что ищете. Если вы ищете программу, которая, по вашему мнению, может быть установлена ​​в каталоге, не указанном на страницах руководства для команды whereis, вы можете использовать команду which с параметром -a , чтобы найти все вхождения команды по всей системе.

Оцените статью
TutoryBird.Ru
Добавить комментарий