10+ способов использовать команду find в Linux

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

Что такое команда find в Linux

Команда find является одним из наиболее важных инструментов, помогающих пользователям Linux искать свои файлы и папки с помощью различных параметров. Вы даже можете выполнять команды оболочки для возвращенных элементов поиска (подробнее об этом позже!). Синтаксис поиска файлов и каталогов с помощью команды find:

находить

Вот как мы объясним приведенный выше синтаксис:

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

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

Вот некоторые из распространенных параметров для сопряжения с командой find: OptionsDescription-nameЭта опция используется для указания имени файла или папки.-typeУказывает тип искомых элементов.-execФлаг exec используется для выполнения команд оболочки. на выходе.-sizeЭтот флаг фильтрует элементы в зависимости от размера занимаемой ими памяти.-permЭтот флаг фильтрует файлы и каталоги на основе их разрешений.-userЭтот флаг используется для поиска файлов и каталогов, принадлежащих определенному пользователю.

Лучшие способы использования команды find в Linux

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

1. Найдите определенные файлы с совпадающим именем

Для поиска файлов и каталогов с помощью команды find используйте флаг -iname. Преимущество поиска с этим флагом заключается в том, что он будет искать заданное имя, игнорируя регистр имени файла. Синтаксис использования команды find с флагом -iname следующий:

находить -инаме

Например, если вы хотите найти файл «test.txt» в текущем каталоге, используйте эту команду:

находить . -iname “test.txt”

Здесь ‘.’ представляет текущий каталог с точки зрения режима относительной адресации для местоположения файла. Вместо этого вы даже можете использовать режим абсолютной адресации для расположения файла, если вам трудно понять относительный режим.

поиск файлов, соответствующих find в Linux

Флаг «-iname» игнорирует регистр имен файлов. Для поиска имен файлов, точно совпадающих с именем файла, просто замените флаг -iname на флаг -name:

находить -имя

2. Найдите файлы по шаблону имени в Linux

Иногда вам нужно работать с важным файлом, но вы не можете вспомнить полное имя файла. Даже в этой ситуации команда find может стать вашим спасением. Просто используйте подстановочные знаки, чтобы соответствовать шаблону имени вашего файла. Затем подстановочные знаки попытаются сопоставить данный шаблон со всеми доступными именами. Предположим, вам нужно найти файл «test-101.py» в текущем каталоге, вы можете использовать следующую команду:

Это перечислит различные файлы, начинающиеся с имени «тест» в их именах файлов, как показано ниже:

находить . -type f -iname “тест*”

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

Использование команды find для поиска с частичным именем файла

3. Найдите файлы или каталоги с совпадающими именами

Как правило, команда find ищет все файлы и каталоги, соответствующие имени. Для поиска только файлов используйте опцию «-type f» с основным синтаксисом:

находить -тип ф -имя

Например, следующая команда покажет все файлы с именем «тест»:

находить . -type f -iname “тест*”

поиск по частичному имени файла с помощью команды find

Для поиска только каталогов используйте флаг «-type d», например:

находить -тип d -имя

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

находить . -type d -iname “тест*”

поиск с частичным именем каталога

4. Найдите файлы с определенным расширением

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

находить . -имя “*.conf”

Поиск файлов с одинаковыми расширениями с помощью команды find в Linux

5. Найдите файлы и каталоги по размеру

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

Основной синтаксис для поиска файлов в Linux по размеру:

находить -тип -размер

Приведенный выше синтаксис такой же, как и предыдущие, за исключением «-size ” часть. Вот объяснение этой части:

  • Для части вы можете указать «+» или «-» или даже оставить это поле пустым. Здесь «+» означает поиск файлов/каталогов, превышающих заданный размер, а «-» указывает на поиск файлов/каталогов меньше заданного размера. Если оставить его пустым, команда find будет искать файлы, точно соответствующие размеру.
  • указывает размер файла/каталога.
  • относится к диапазону размера файла, который вы хотите найти.

Вы можете использовать следующие типы дескрипторов размера: Описание дескриптора размераcУказывает команду find для поиска размера в байтах.Sуказывает команду find для поиска размера в килобайтах.

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

  • Если вам нужно просмотреть каталоги, равные 4 КБ в каталоге Documents, используйте эту команду:

найти ~/Документы -тип d -размер 4k

просмотр файлов размером 4 кб с помощью команды find в Linux

  • Или, если у вас мало места и вам нужно просмотреть файлы размером более 100 МБ в каталоге «Документы», используйте эту команду:

найти ~/Документы -тип f -размер +100M

поиск больших файлов с помощью команды find

  • Если вам нужно просмотреть файлы размером менее 10 МБ в каталоге Documents, используйте эту команду:

найти ~/Документы -тип f -размер -10M

поиск файлов размером менее 10 МБ с помощью команды find в Linux

  • Если вам нужно просмотреть пустые файлы в каталоге Documents, используйте эту команду:

найти ~/Документы -тип f -размер 0

просмотр пустых файлов с помощью команды find в Linux

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

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

Чтобы найти файлы и каталоги на основе набора разрешений, используйте этот синтаксис:

находить -тип -пермь

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

Предположим, вам нужно найти файлы с правами только на чтение для root, используйте эту команду:

find ~/Documents/test/ -type f -perm 400

поиск файлов с разрешением только на чтение для root

Или, если вы хотите найти файлы с правами чтения и записи для всех пользователей, используйте эту команду:

find ~/Documents/test/ -type f -perm a=r+w

просмотр файлов с разрешениями на чтение и запись для всех пользователей с помощью команды find в Linux

7. Найдите файлы и каталоги, принадлежащие пользователю

Как мы объясняли ранее, вы можете искать файлы на основе разрешений, установленных для файла с помощью команды find в Linux. Теперь мы покажем вам, как просмотреть файлы, принадлежащие конкретному пользователю. Основной синтаксис остается в основном таким же, за исключением нового флага -user, который указывает команду find для поиска файлов, принадлежащих этому пользователю:

находить -тип -пользователь

Например, если вы хотите увидеть файлы, принадлежащие пользователю «test» в текущем каталоге, используйте эту команду:

находить . -тип f -пользовательский тест

найти файлы, принадлежащие пользователю

8. Использование команды find с флагом -exec

С помощью флага -exec вы можете выполнять настоящие команды оболочки с помощью команды find и, таким образом, многократно повышать ее функциональность. Флаг -exec выполняет команды оболочки для каждого возвращенного результата поиска. Основной синтаксис для использования команды find с флагом -exec:

находить -exec {} ;

В приведенном выше синтаксисе {} используются для вставки результатов поиска, найденных командой find внутри команды оболочки. Пример сделает это более понятным.

Предположим, вы хотите скопировать файл с именем test.txt из текущего каталога в /tmp/docs/, используйте эту команду:

находить . -iname переименование.sh -exec cp {} ./testing \;

В приведенном выше примере, когда файл «renameing.sh» найден, он напрямую подключается вместо «{}», где выполняется обычная процедура копирования. Последняя точка с запятой (;) обозначает завершение команды.

копирование определенного файла с помощью команды find и флага -exec

Давайте теперь посмотрим, как несколько файлов обрабатываются флагом -exec. Допустим, вы хотите переместить все файлы .pdf в текущем каталоге в новый каталог с именем «ftesting» в домашнем каталоге, вы можете использовать эту команду:

find .-name “*.pdf” -exec mv {} ./testing + \;

перемещение нескольких файлов с помощью команды find и флага -exec

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

9. Поиск и удаление файлов и каталогов в Linux

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

находить -тип -exec РМ -vf {};

Некоторым пользователям может показаться, что приведенная выше команда трудна для понимания. Чтобы упростить задачу, вы можете использовать флаг -delete вместо всей части -exec для удаления элементов. Синтаксис для удаления файлов с использованием флага -delete с командой find в Linux:

находить -тип -delete Удалить файл и каталог с точным именем

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

находить -тип -имя -удалить

Допустим, вы хотите удалить файл «test.txt» в текущем каталоге, вы можете использовать эту команду как:

находить . -type f -name test.txt -delete

удаление одного файла

Удалить файлы с частично совпадающим именем

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

находить -тип -имя -удалить

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

находить . -type f -name “test*” -delete

удаление нескольких файлов

Удалить файлы с одинаковым расширением

Когда вам нужно удалить все файлы с одинаковым расширением в каталоге, все, что вам нужно сделать, это добавить флаг -delete в конце. Синтаксис для удаления всех файлов с одинаковыми расширениями:

находить -тип f -имя “*.” -удалить

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

находить . -type f -name “*.pdf” -delete

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

Удалить пустые файлы и каталоги с помощью команды find

Удалить пустые файлы и каталоги довольно просто. Просто добавьте флаг -delete в конце, чтобы команда нашла пустые папки и файлы в Linux. Синтаксис для удаления пустых файлов и папок:

находить -тип -размер 0 -удалить

удаление пустых каталогов

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)