Как использовать команду find в Linux для поиска файлов?

How Use Find Command Linux Search Files



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

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







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



Давайте подробно обсудим, как использовать команду find, ее синтаксис и различные операции, выполняемые этой командой.



Синтаксис команды find в Linux

Синтаксис команды find показан ниже:





найти [дорожка] [параметры] [выражение]

С командой find идут три атрибута:

  • [путь]: определяет каталог, в котором следует начать поиск.
  • [параметры]: определяет критерии фильтрации, например поиск файла / папки по его имени, разрешению, времени или дате.
  • [выражение]: определяет, какие действия выполнять с файлом.

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



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

find / 1% 20copy.png

Поиск файла по имени

Чтобы найти файл по имени, используйте следующую команду:

$найти.-имяMyTextFile1.txt

find / 2% 20copy.png

Точка после find в приведенной выше команде указывает текущий каталог.

Если вы не помните точное имя файла, поиск можно уточнить и сделать его нечувствительным к регистру, используя вместо имени -iname:

$найти.-inamemytextfile1.txt

find / 3% 20copy.png

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

Чтобы найти файл по его типу, используйте параметр -type с буквами, которые также известны как дескрипторы, например f для файлов, d для каталогов, l для символической ссылки и s для сокетов.

Для поиска по всем каталогам используйте:

$найти.-типd

find / 4% 20copy.png

Для поиска файлов используйте:

$найти.-типж

c% 20copy.png

Поиск файла по расширению файла

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

$найти.-имя *.текст

find / 5% 20copy.png

Все файлы с расширением .txt будут отображаться вместе с соответствующими каталогами.

Поиск и удаление файла

Чтобы найти и удалить файл, используйте команду ниже:

$найти.-inamemytextfile1.txt-exec rm {};

find / 6% 20copy.png

Приведенная выше команда сначала ищет файл, а затем удаляет его. Изображение демонстрирует, что MyTextFile1 был удален.

Чтобы удалить все файлы с расширением .txt, вы можете использовать добавленную команду:

$найти.-имя *.текст-удалять

find / 7% 20copy.png

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

Команда find также может искать файл по размеру. Просто используйте параметр -size вместе с его дескрипторами, такими как b для блоков по 512 Кб, c для байтов, k для килобайт, M и G для мегабайт и гигабайт соответственно:

$найти.-типж-размер -1024c

find / 8% 20copy.png

Упомянутая выше команда ищет все файлы размером менее 1024 байтов. Поиск можно дополнительно уточнить, например, если мы хотим найти все файлы размером менее 1 МБ, мы используем следующую команду:

$найти.-типж-размер1 млн

ab / a% 20copy.png

Для всех файлов размером более 1 МБ используйте следующую команду:

$найти.-типж-размер+ 1 млн

ab / b% 20copy.png

Диапазон размеров также можно определить с помощью добавленной команды:

$найти. -типж-размер+ 1 млн-размер10 млн

Поиск файлов по разрешению

Для поиска файла по разрешению мы будем использовать параметр -perm, а затем код разрешения, как показано ниже:

$найти.-перма 664

find / 10% 20copy.png

Найти текст в текстовых файлах

Чтобы найти текст в нескольких текстовых файлах в вашей системе, используйте команду, приведенную ниже:

$найти.-типж-имя *.текст-exec рукоятка'Привет'{};

find / 12% 20copy.png

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

Поиск файла по дате и времени изменения

Чтобы получить доступ к файлу по его последней модификации, используйте команду ниже:

$найти.-типж-iname *.текст-ммин+10

find / 13% 20copy.png

Приведенная выше команда ищет файл, последний раз измененный четыре минуты назад, и m означает изменение.

$найти. -типж-iname *.текст-амин -10

find / 14% 20copy.png

Вышеупомянутая команда ищет файл, к которому последний раз доступ осуществлялся 4 минуты назад, а символ a в amin означает доступ. Чтобы получить доступ к файлу, который был изменен четыре дня назад, используйте -mtime +4 вместо mmin +4.

Заключение

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