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

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

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

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

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

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

    находить .

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

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

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

    находить . имя про \ *

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

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

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

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

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

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

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

    sudo updatedb

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

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

    найти mydata

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

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

    найдите -b '\ mydata'

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

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

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

    sudo apt-get установить mlocate

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

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

    sudo /etc/cron.daily/mlocate

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

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

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

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

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

    который-Firefox

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

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

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

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

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

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

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

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

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

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

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

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