Как найти файлы в Linux?

Опубликовано: 2022-04-07

Оглавление

Введение:

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

Вы можете дополнительно комбинировать его с опцией « exec » для выполнения различных действий с результатами, найденными командой find .

В этой статье мы узнаем, как найти файлы в Linux с помощью команды « Найти ».

Как работает команда «Найти»?

Find находит файлы на вашем компьютере. В соответствии с правилами приоритета он оценивает каждое выражение слева направо в каждом дереве каталогов, заданном заданными путями. В операциях И или ИЛИ результат «известен», когда левая часть выражения равна ИСТИНА или ЛОЖЬ. Поиск затем переходит к следующему пути, пока все пути не будут исследованы.

Команда find — самый фундаментальный и мощный инструмент для работы с файлами в системе Linux. Файлы могут быть расположены сами по себе или в сочетании с другими программами.

Синтаксис:

find [options] [path…] [expression]

или же

$ find [where to start searching from]

[выражение определяет, что искать] [-параметры] [что искать]

  • Обработка символической ссылки, параметры отладки и стратегия оптимизации контролируются свойством options .
  • Свойство path … указывает каталог или каталоги, в которых find будет искать файлы.
  • Параметры, шаблоны поиска и действия разделены операторами в атрибуте выражения .

Опции:

-exec CMD : искомый файл, который соответствует вышеуказанным критериям и возвращает 0 для успешного завершения выполнения команды.

-ok CMD : аналогично -exec, но пользователю предлагается заранее.

-inum N : искать файлы с номером «N» в индексном узле.

-links N : найти файлы, имеющие N ссылок.

-name demo : искать файлы с именем «demo» в имени файла.

-newer file : поиск файлов, которые были обновлены или созданы после «файла».

-perm octal : если разрешение «восьмеричное», найдите файл.

-print : напечатать пути к файлам, идентифицированным с использованием оставшихся критериев.

-empty : искать файлы и папки, которые пусты.

-size +N/-N : искать файлы с N блоками; «N», за которым следует «c», можно использовать для измерения размера символа; '+N' обозначает размер > 'N' блоков, а '-N' означает размер 'N' блоков.

-user name : искать файлы с именем пользователя «имя» или идентификатором «имя».

(выражение) : если «выражение» истинно, то истинно; используется для группировки критериев с ИЛИ или И.

! expr : Истинно, если 'expr' ложно.

Выражения:

Опции (которые влияют на общую операцию, а не на обработку файлов и всегда возвращают true), тесты (которые возвращают значение true или false) и действия (которые имеют побочные эффекты и возвращают значение true или false) разделены операторами в выражении. . Когда оператор отсутствует, выводится -and.

Если выражение не содержит дополнительных действий, то -prune, -print применяется ко всем файлам, для которых оно истинно.

Например, давайте посмотрим на следующую команду в качестве примера

find -L /var/www -name "*.js"

  • Параметр -L ( параметры ) указывает команде поиска переходить по символическим ссылкам.
  • /var/www (путь…) указывает каталог , в котором будет производиться поиск.
  • (Выражение) -name "*.js указывает find искать файлы, оканчивающиеся на .js (файлы JavaScript).

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

Файлы можно найти по имени с помощью команды find . Вы можете искать файл по его имени, используя опцию -name.

find -type f -name functions.php

Как найти файлы в Linux

используйте -iname вместо -name, чтобы запустить поиск с учетом регистра

Как найти файлы в Linux по расширению

Вы можете искать файлы по расширению так же, как вы можете искать файлы по имени.

find -type f -name '*.php'

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

find -type f - not -name '*.php'

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

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

Укажите тип искомого файла, используя параметр -type и один из следующих дескрипторов:

  • f: обычный файл
  • д: каталог
  • л: символическая ссылка
  • c: символьные устройства
  • б: блокировать устройства
  • p: именованный канал (FIFO)
  • с: сокет

find public_html/wp-admin/ -type d

Поиск файлов по размеру

Параметр -size следует передавать вместе с параметром размера для поиска файлов по их размеру. Для указания размера файла можно использовать следующие суффиксы:

  • b: блоки по 512 байт (по умолчанию)
  • с: байты
  • w: двухбайтовые слова
  • к: килобайты
  • М: Мегабайты
  • Г: гигабайты

find . -type f -size -1M

Если вы хотите найти файлы размером более 1 МБ, используйте +

find . -type f -size +1M

Вы даже можете искать файлы в диапазоне размеров

find . -type f -size +1M -size 3M

Найти файлы по модификации

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

Используйте символы «плюс» и «минус» для слов «больше чем» и «меньше чем», как при поиске по размеру.

find . -mtime +30 -daystart

Найти с разрешения

Вы можете использовать параметр -perm для поиска файлов на основе их разрешений.

find public_html/wp-admin/css -perm /444

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

-prefix, то должны быть установлены как минимум указанные биты.

Найти по владельцу

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

find -user testc7963

Вывод

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