Как искать файл в терминале Ubuntu 22.04 или 20.04

Ознакомьтесь с различными способами поиска и нахождения файлов непосредственно из командного терминала Ubuntu с примерами команд.

Если вы находитесь на графическом рабочем столе Ubuntu, то поиск файла с помощью его файлового менеджера не является сложной задачей, но как сделать то же самое на серверах командной строки, где CLI является единственным способом. Для этого Ubuntu предлагает встроенный инструмент командной строки под названием “find“, кроме этого доступны и другие инструменты с открытым исходным кодом, например Locate, о них мы тоже поговорим.

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

Итак, давайте посмотрим несколько команд, которые мы можем использовать для поиска файлов в командном терминале Ubuntu.

1: Поиск файлов с помощью команды ‘find’

Команда ‘find’ по умолчанию доступна во всех системах Ubuntu Linux для поиска файлов прямо в терминале. Мы даже можем задать различные критерии, такие как имя, тип, размер и время модификации.

Чтобы использовать ее, перейдите в каталог, где находится файл, который вы хотите найти, или укажите путь, по которому команда “find” должна его искать.

Например:

Для поиска в текущем каталоге

find -name you-file-name

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

Синтаксис:

find /path/to/search -name "your-filename"

Заменить “/path/to/search” с каталогом, в котором вы хотите начать поиск, и “your-filename” с именем, шаблоном или расширением искомого файла.

Например, если вы хотите найти в терминале файл, скажем, “example.txt” в текущем каталоге и его подкаталогах, используйте:

find -name "example.txt"

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

Пример: Будет выведен список всех файлов директории, в которой производится поиск, с расширением .txt.

find -name "*.txt"
перечислить все файлы каталога

2: Использование команды ‘find’ с дополнительными параметрами

Чтобы получить больше пользы от команды ‘найти‘ команда мы можем использовать дополнительные опции для уточнения результатов поиска в терминале Ubuntu. Вот несколько часто используемых:

Заменить /path/to/search с указанием пути к каталогу, в котором находятся файлы, или удалите его, если вы находитесь в том же каталоге, где доступен файл.

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

find /path/to/search -type file_type

Заменить /path/to/search с указанием каталога, в котором вы хотите начать поиск. Адрес тип_файла может быть одним из следующих:

f: Обычные файлы
d: Справочники
l: Символические ссылки
b: Блочные устройства
c: Устройства для создания символов
s: Сокеты
p: Именованные трубы (FIFO)

Примеры:

Поиск регулярных файлов:

Для поиска обычных файлов (за исключением каталогов, символических ссылок и т. д.) в текущем каталоге и его подкаталогах используйте следующую команду:

find -type f

Поиск по каталогам:

Если вас интересует поиск каталогов только в текущем местоположении, вы можете использовать следующую команду:

find -type d

Для поиска символических ссылок в определенном каталоге используйте следующую команду:

find /usr/local -type l

Эта команда будет искать символические ссылки в каталоге /usr/local каталог.

Поиск блочных устройств:

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

find /dev -type b

Эта команда выполнит поиск блочных устройств в пределах /dev каталог.

Поиск устройств для персонажей:

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

find /dev -type c

Эта команда выполнит поиск символьных устройств в пределах /dev каталог.

Поиск сокетов:

Если вас интересует поиск сокетов, которые используются для межпроцессного взаимодействия, воспользуйтесь следующей командой:

find /var/run -type s

Эта команда будет искать сокеты в пределах /var/run каталог.

Поиск именованных трубок (FIFO):

Для поиска именованных труб или FIFO, которые представляют собой специальные файлы для межпроцессного взаимодействия, используйте следующую команду:

find /tmp -type p

Эта команда будет искать именованные трубы внутри /tmp каталог.

Поиск по размеру файла (например, файлы размером более 1 МБ):

find /path/to/search -size +1M

Поиск по времени модификации (например, файлы, измененные за последние 7 дней):

find /path/to/search -mtime -7

3: Поиск файла с помощью команды ‘locate’

Команда ‘разместить‘ Команда недоступна для использования в Ubuntu по умолчанию, но ее можно получить через системный репозиторий для установки. Она использует предварительно созданную базу данных имен файлов, доступных в системе, для поиска нужного нам файла. Следовательно, она быстрее, чем команда “Найти”, но пользователям приходится время от времени обновлять свою базу данных.

Для начала давайте установим инструмент Locate

sudo apt install locate

Теперь обновите его базу данных с помощью приведенной команды:

sudo updatedb

После обновления базы данных мы можем искать файл или файлы с помощью команды locate, вот как?

locate myfile

Заменить “myfile” на имя или шаблон, по которому вы хотите выполнить поиск.

Если вы хотите выполнить поиск во всех файлах, игнорируя чувствительность к регистру, используйте параметр -i опция, вот пример:

locate -i Myfile

Для определения местоположения нескольких файлов добавьте их имена перед командой Locate, например:

locate –i mfile.txt myfile.iso demo.txt

4: Использование команды ‘grep’

Команда ‘grep’ в основном используется для поиска шаблонов в содержимом файлов, но также может быть использована для поиска файлов по определенным текстовым шаблонам в их именах.

Для поиска файлов с помощью ‘grep‘, откройте терминал и выполните следующую команду:

ls -R | grep "pattern"

Замените “шаблон” с текстовым шаблоном, который вы ищете. Команда ‘ls -R’ рекурсивно перечисляет все файлы, а ‘grep’ фильтрует вывод по заданному шаблону.

Пример: Чтобы найти все файлы в текущем каталоге, завершите поиск командой ‘.txt’ расширение.

ls -R | grep ".txt"

Заключение:

Итак, это были несколько основных команд, которые мы можем использовать в Ubuntu для поиска файлов с помощью Терминала. Это повысит производительность, потому что вам не придется просматривать длинный список файлов, чтобы найти тот, который вы ищете. Используя такие команды, как ‘find’, ‘locate’ и ‘grep’, вы можете искать файлы по различным критериям, включая имя, тип, размер и время модификации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *