Поиск файлов · 5 min read · Nov 15, 2025
Как искать файлы из терминала в Linux

Хотя существует множество способов поиска и локализации файлов и директорий в Linux, самым простым и быстрым, вероятно, является использование терминала. Однако не многие пользователи Linux знают об этом, что приводит к ненужным разочарованиям. Вот краткое руководство, которое, надеюсь, поможет вам найти то, что вы ищете в вашей системе. Мы рассмотрим два разных приложения для поиска. Команда locate, которая использует базу данных для ускорения поиска, и команда find, которая выполняет операцию поиска непосредственно в файловой системе.
Используйте команду Locate
Команда “ locate ” является первым средством, которое должен использовать пользователь Linux, потому что она намного быстрее, чем что-либо другое. Причина этой непревзойденной скорости заключается в том, что команда locate на самом деле не ищет ваши локальные жесткие диски для файлов или директорий, которые вам нужно найти, а скорее читает файл базы данных mlocate.db, который содержит все пути к файлам в вашей системе.
Если вы еще не установили locate, используйте эти команды:
Debian и Ubuntu
sudo apt install locateCentOS, AlmaLinux и Rocky Linux
dnf install locateПодготовьте команду locate для первого использования
Чтобы обновить базу данных mlocate.db перед первым использованием, выполните:
sudo updatedbЧтобы использовать locate, откройте терминал и введите locate, за которым следует имя файла, который вы ищете. В этом примере я ищу файлы, которые содержат слово ‘sunny’ в своем имени.
locate sunny
Locate также может сообщить вам, сколько раз ключевое слово поиска совпадает с базой данных. Это достигается путем включения параметра “-c” в команду, который означает “count”.
locate -c sunny
Что пользователи должны иметь в виду здесь, так это то, что “locate” требует конкретного и точного имени файла, который вы ищете, в отличие от других более гибких инструментов. Это означает, что locate отлично подходит для поиска чего-то, в имени чего вы уверены, но не так хорош для случаев, когда вы не совсем помните имя файла.
locate howtoforgevs
locate Howtoforge
Более того, и поскольку “ locate ” читает файл базы данных, результаты могут быть устаревшими и не совсем точными. Чтобы смягчить эту проблему, вы можете обновить свою базу данных путей к файлам, введя “ sudo updatedb ” в сеансе терминала.
Посмотрите здесь для получения дополнительных примеров использования команды locate.
Если после этого вы все еще не получаете то, что искали, или вас просто переполняет количество результатов, переходите к следующему шагу, который является командой “find”.
Используйте команду Find
Команда “ find ” является гораздо более мощным, но также более медленным инструментом поиска. Это связано с тем, что в отличие от команды “locate”, “find” на самом деле ищет ваши диски для файлов и директорий, которые интересуют пользователя. Find идеально подходит для случаев, когда вы пытаетесь найти файл или директорию, но не можете вспомнить их имя, потому что “find” может искать файлы, принадлежащие определенному пользователю или группе пользователей, файлы, которые были изменены или открыты недавно, файлы определенного диапазона размеров, скрытые файлы, исполняемые файлы, файлы только для чтения и файлы с определенными правами доступа. Лучшая часть заключается в том, что пользователь может свободно комбинировать несколько из вышеуказанных критериев в одной команде “find”, тем самым сужая результаты.
Говоря о сужении, первое, что вы хотите сделать при запуске “find”, это указать ему искать в конкретной директории. Это значительно ускорит процесс поиска, но всегда зависит от размера директории. Если вы знаете, где может находиться файл, откройте терминал, перейдите в директорию и выполните “ find . [filename] ”. Эта точка указывает find искать в текущей директории. Если вы хотите искать в вашей домашней директории, замените точку на “~/”, а если хотите искать в вашей всей файловой системе, используйте “/” вместо этого.
В качестве примера я хочу найти файл, который содержит постер в моей директории загрузок. Я знаю, что имя файла содержит слово “poster”, но не совсем помню его имя. По этой причине я перейду в свою папку загрузок, используя команду cd через терминал с “cd Downloads”, а затем введу команду:
sudo find . -name "*poster*"Вот результат:

Это говорит мне, что в папке Загрузки есть pdf файл с именем “billy_poster copy”. Если бы я не знал, где он находится, “find” все равно сообщил бы мне, что он находится в папке Загрузки, если бы я искал в родительской директории.

Теперь, если я заменю параметр “-name” на “-iname”, я мог бы получить результаты без учета регистра букв. Это то, чего нет в “locate”, так что это еще один полезный элемент, когда вы не уверены в имени файла.
sudo find . -iname "*poster*"
Теперь давайте предположим, что я все еще ищу тот же файл постера, и единственное, что я помню, это то, что его размер меньше 5 МБ. Команда, которую я бы использовал в этом случае:
find ~/ -size -5MЕсли бы я знал, что он больше, скажем, 2 МБ, команда была бы “find ~/ -size +2M”. Лучшая часть заключается в том, что find поддерживает логические операторы, чтобы сделать поиск еще более мощным. Для этого примера я использую команду, которая сочетает мое знание о том, что файл меньше 5 мегабайт по размеру, и также больше 2. Команда для этого будет:
find / -size -5M -and -size +2M
Наконец, давайте предположим, что мы ничего не помним о файле, но помним, что мы открывали его в течение трех минут назад. Чтобы найти его, используйте команду find как:
find / -amin -3Это будет “find / -amin -30” для получаса, и “-amin -120” для двух часов и т.д. Если вы открыли файл два дня назад, используйте вместо этого:
find / -time -2Это отобразит все файлы, доступные за последние два дня в месте поиска.

Я думаю, что вышеизложенное охватывает большинство обычных сценариев использования. Для получения дополнительной информации о мощной команде “find” откройте терминал и введите “man find”. Удачи в поиске того, что вы ищете.
Больше примеров команды find в Linux можно найти здесь.
Get new posts in your inbox
No spam. Unsubscribe anytime.