Linux команды · 6 min read · Sep 16, 2025

16 Практических Примеров Команды Find в Linux для Начинающих

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

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

1. Как перечислить все файлы в текущем каталоге и его подкаталогах

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

find

Вот вывод в нашем случае:

перечислить все файлы в текущем каталоге и его подкаталогах

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

2. Как искать файл по имени

Если вы хотите, вы можете использовать команду find для поиска конкретного файла по его имени. Параметр командной строки -name позволяет вам это сделать. Вот синтаксис:

find [dir-path] -name [filename]

Например, следующая команда будет искать в текущем каталоге файл с именем ‘testfile1.txt’.

find . -name testfile1.txt

Вот вывод

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

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

find /home -name testfile1.txt

3. Как искать файлы определенного типа

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

find . -name "*.txt"

Если вы не в курсе, * является символом подстановки. Для получения дополнительной информации о символах подстановки, перейдите сюда.

4. Как выполнять нечувствительный к регистру поиск

По умолчанию команда find выполняет чувствительный к регистру поиск (она рассматривает заглавные и строчные буквы как разные). Но если вы хотите, вы можете заставить команду выполнять нечувствительный к регистру поиск. Это можно сделать, используя параметр командной строки -iname.

find -iname [filename]

Например,

find -iname testfile1.txt

Вот вывод

5. Как отображать только имена, которые не соответствуют шаблону поиска

Если вы хотите, вы можете даже попросить команду find напечатать имена файлов, которые не соответствуют шаблону поиска (также известный как инвертированный поиск). Вы можете получить доступ к этой функции, используя оператор ! или -not.

Например

find . -not -name "*.txt"

Вот вывод

Как вы можете видеть, все файлы с расширением, отличным от .txt, представлены в выводе.

6. Как ограничить поиск до уровня(ей) каталога

Команда find также позволяет вам ограничить поиск до определенной глубины каталога. Один из параметров командной строки, который позволяет вам это сделать, — -maxdepth.

Например, рассмотрим следующую структуру каталогов:

ограничить поиск до уровня(ей) каталога

Теперь предположим, что вы хотите, чтобы find искал только до подкаталога ‘find’ (что означает, что он должен игнорировать подкаталог ‘howtoforge’), тогда вы можете использовать следующую команду:

find . -maxdepth 3 -name "*.txt"

Здесь ‘-maxdepth 3’ заставляет ‘find’ заходить внутрь и искать только на трех уровнях, при этом первым уровнем является ваш верхний уровень (или текущий рабочий) каталог.

Вот вывод команды:

ограничить поиск до уровня(ей) каталога вывод

Как maxdepth, есть еще один параметр под названием mindepth (использование: ‘-mindepth [N]’). При использовании этот параметр заставляет команду find заходить на ‘N’ уровней вниз перед началом операции поиска.

Например,

find . -mindepth 3 -name "*.txt"

Таким образом, ищутся только каталоги ‘find’ и ниже.

По аналогии, если вы хотите искать .txt файл в подкаталогах, которые находятся между уровнями 2 и 4, тогда вы можете использовать следующую команду.

find -mindepth 2 -maxdepth 4 -name "*.txt"

7. Отображение всех пустых файлов

Если вы хотите, вы можете использовать команду find для отображения всех пустых файлов в определенном каталоге (и его подкаталогах). Это можно сделать с помощью параметра -empty.

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

$ find . -empty

8. Как искать файлы, принадлежащие определенной группе

Команда find также позволяет вам искать файлы, принадлежащие определенной группе — параметр -group позволяет вам это сделать. Например, следующая команда перечислит все файлы — находящиеся в текущем рабочем каталоге и его подкаталогах — которые принадлежат группе ‘howtoforge’.

find . -group howtoforge -name "*.txt"

Вот вывод вышеуказанной команды в моем случае:

9. Как искать файлы, принадлежащие определенному пользователю

Команда find также позволяет вам искать файлы на основе владения — параметр -user позволяет вам это сделать. Например, следующая команда отобразит все .txt файлы (находящиеся в текущем каталоге), принадлежащие пользователю ‘himanshu’:

find . -user himanshu -name "*.txt"

10. Как искать недавно измененные файлы

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

Итак, например, если вы хотите искать .txt файлы (в вашем текущем каталоге), данные которых были изменены 1 минуту назад, вы можете использовать следующую команду:

find . -mmin 1 -name "*.txt"

11. Как искать файлы, которые были изменены более недавно, чем файл

Да, команда find даже позволяет вам искать файлы, которые были изменены более недавно, чем определенный файл. Эта функция доступна с помощью параметра -newer, который требует, чтобы вы передали имя файла (по сравнению с которым вы хотите провести сравнение).

Вот пример:

find . -newer ./examples/find/howtoforge/old.txt -name "*.txt"

12. Как отображать только имена каталогов в выводе

Существует также параметр командной строки, который позволяет команде find отображать только имена каталогов в выводе. Параметр, о котором идет речь, — -type, и вам нужно передать d в качестве значения.

Например:

find -type d

Вот вывод вышеуказанной команды в нашем случае:

Помимо d, есть несколько других букв, которые можно передать в качестве значения параметру -type. Чтобы узнать о них, перейдите на страницу man команды find.

13. Как искать файлы на основе их номеров inode

Вы также можете передать номер inode команде find и попросить ее найти соответствующее имя файла (если таковое имеется). Эта функция доступна через параметр -inum, который требует номер inode в качестве значения.

Вот пример:

Совет: Вы можете найти номер inode файла, используя команду ‘ls -li’.

14. Как искать файлы на основе времени их последнего доступа

Команда find также позволяет вам искать файлы на основе времени их последнего доступа — вы можете попросить инструмент отобразить файл(ы), которые были последним доступом ‘n’ минут назад. Эта функция доступна с помощью параметра командной строки -amin.

Например, следующая команда ищет .txt файлы в текущем каталоге, которые были доступны 1 минуту назад:

find -amin 1 -name "*.txt"

15. использование регулярных выражений (regex) с find

Команда find поддерживает использование регулярных выражений. Их можно указать с помощью параметра командной строки -regex.

find ./ -type f -regex '\.\/test[1-2]\.txt'

Это регулярное выражение находит все файлы, которые начинаются со слова test, затем содержат числа от 1 до 2, и затем заканчиваются на .txt. Важно учитывать в регулярном выражении, что “./“ является частью файла, а не только именем файла.

Linux find regex

16. поиск файлов по размеру с помощью команды find

С помощью параметра командной строки -size вы можете искать файлы по размеру. Например, если вы хотите найти файлы больше 100 МБ, используйте следующую команду:

find ./ -type f -size +100M

Вы можете использовать следующие единицы размера:

K = килобайт
M = мегабайт
G = гигабайт

Таким образом, вы можете легко найти большие файлы в Linux.

Заключение

Примеры, упомянутые в этом руководстве, должны дать вам хорошее представление о том, как команда find работает на базовом уровне, а также о некоторых полезных параметрах командной строки, которые она предлагает. Обязательно попробуйте эти примеры на своей системе и также ознакомьтесь со страницей man инструмента.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.