Команды Linux: найти

Краткое руководство по команде find, используемой для поиска файлов и папок в файловой системе.

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

Давайте узнаем это на примере.

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

find . -name '*.js'

Важно использовать кавычки вокруг специальных символов, например*чтобы оболочка не интерпретировала их.

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

find . -type d -name src

Использовать-type fдля поиска только файлов, или-type lдля поиска только символьных ссылок.

-nameчувствителен к регистру. использовать-inameдля выполнения поиска без учета регистра.

Вы можете искать по нескольким корневым деревьям:

find folder1 folder2 -name filename.txt

Найдите каталоги в текущем дереве, соответствующие имени «node_modules» или «public»:

find . -type d -name node_modules -or -name public

Вы также можете исключить путь, используя-not -path:

find . -type d -name '*.md' -not -path 'node_modules/*'

Вы можете искать файлы, содержащие более 100 символов (байтов):

find . -type f -size +100c

Искать файлы размером более 100 КБ, но меньше 1 МБ:

find . -type f -size +100k -size -1M

Искать файлы, отредактированные более 3 дней назад

find . -type f -mtime +3

Искать файлы, отредактированные за последние 24 часа

find . -type f -mtime -1

Вы можете удалить все файлы, соответствующие поисковому запросу, добавив-deleteвариант. Это удалит все файлы, отредактированные за последние 24 часа:

find . -type f -mtime -1 -delete

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

find . -type f -exec cat {} \;

обратите внимание на прекращение\;.{}заполняется именем файла во время выполнения.

Скачать мою бесплатнуюСправочник по командам Linux


Больше руководств по cli: