Вторник, 24 июня, 2025

Как в терминале Linux выполнять поиск файлов

Терминал в Linux является основным приложением для выполнения задач, включая поиск файлов. В этом вам поможет использование команды find, с которой вы можете находить файлы и каталоги в файловой системе Linux.

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

mkdir test

cd test

touch test1.txt test2.h test3.c TEST.f

ls

Поиск файла в Linux

Воспользуемся командой find, чтобы в каталоге test найти файл с именем test1.txt. Использование find с».»указывает, что поиск должен быть ограничен текущим рабочим каталогом. После выполнения команды find вы должны увидеть test1.txt файл, указанный в результате.

find . -name test1.txt

Поиск по частичному имени файла в Linux

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

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

find . -name “*tes*”

В списке результатов вы должны увидеть, что все файлы были найдены и перечислены, кроме TEST.f, это связано с тем, что-name возвращает результаты с учетом регистра.

Повторите команду поиска определенного расширения файла. Мы можем использовать тот же метод для поиска определенного типа файла. Смена команды на поиск»*.txt * » вернет только тип файла .txt.

find . -name “*.txt*”

Используйте-iname для возврата результатов без учета регистра. Здесь мы снова используем неполный поисковый запрос » * tes*», но использование-iname заставляет команду отображать все результаты независимо от верхнего или нижнего регистра. Поэтому результаты включают наш файл TEST.f.

find . -iname “*tes*”

Различие между каталогами и файлами в Linux

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

Добавьте каталог в наш тестовый каталог под названием test2. Используйте ls для подтверждения создания каталога.

cd test

mkdir test2

ls

Запустите команду find, которая вернет результаты как по файлу, так и по каталогу. Вы должны увидеть, что результат содержит все тестовые файлы, а также каталог test2.

find . -iname “*test*”

Добавьте тег типа f, чтобы возвращать только результаты из файла. Обратите внимание, что в результате каталог test2 пропущен.

find . -iname “*test*” -type f

Добавьте тег-type d, чтобы возвращать результаты только каталогам. Обратите внимание, что единственным результатом теперь должен быть каталог test2 .

find . -iname “*test*” -type d

Поиск по всей файловой системе Linux

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

Выполните поиск test1.txt файлов в корневом каталоге ( / ) файловой системы. Этот шаг добавлен, чтобы проиллюстрировать распространенную проблему.

cd

find / -iname test1.txt

Вы обнаружите, что у вас нет разрешения на доступ к диску во многих папках. Обратите внимание, что в этом примере мы используем / , чтобы включить команду для поиска во всех подкаталогах.

Повторите предыдущий поиск, но используйте sudo для выполнения поиска с рут-правами (root). Это один из самых высоких уровней прав доступа к файлам и папкам.

sudo find / -iname test1.txt

Теперь вы можете искать любой файл в любом месте вашей системы, даже если вы знаете только часть его названия.

НАПИСАТИ ВІДПОВІДЬ

Коментуйте, будь-ласка!
Будь ласка введіть ваше ім'я

Євген
Євген
Евгений пишет для TechToday с 2012 года. По образованию инженер,. Увлекается реставрацией старых автомобилей.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися

Статті