Как найти имя файла

Обновлено: 24.11.2024

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

Найти файлы Linux по имени или расширению

Введите find в командной строке, чтобы отследить конкретный файл по его имени или расширению. Если вы хотите найти файлы *.err в каталоге /home/username/ и во всех подкаталогах, попробуйте следующее: найти /home/username/ -name "*.err"

Типичный Linux Поиск Команды и синтаксис

Выражения команды

найти выглядят следующим образом:

найти параметры команды начало/путь выражение

Атрибут options управляет поведением и методом оптимизации процесса find. Атрибут starting/path определяет каталог верхнего уровня, в котором команда find в Linux начинает процесс фильтрации. Атрибут выражение управляет оценками, которые просматривают дерево каталогов для создания выходных данных.

Давайте разберем команду поиска Linux, где нам нужен не просто поиск файла Linux по имени:

найти -O3 -L /var/www/ -name "*.html"

Это включает оптимизацию верхнего уровня (-O3) и позволяет find переходить по символическим ссылкам (-L). Команда find в Linux ищет по всей иерархии каталогов в /var/www/ файлы с расширением .html в конце.

Основные примеры

<р>1. найти . -назовите этот файл.txt

Если вам нужно знать, как найти файл thisfile.txt в Linux, он будет искать его в текущем и подкаталогах.

<р>2. найти /home -name *.jpg

Ищите все файлы .jpg в каталоге /home и под ним.

<р>3. найти . -тип f -пусто

Найдите пустой файл в текущем каталоге.

<р>4. найти /home -user randomperson-mtime 6 -iname ".db"

Поиск всех файлов .db (без учета регистра), которые были изменены за последние 6 дней пользователем randomperson.

Параметры и оптимизация команды Найти для Linux

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

find может помочь Linux найти файл по имени. Команда Linux find совершенствует свой подход к фильтрации, чтобы оптимизировать производительность. Пользователь может найти файл в Linux, выбрав три этапа оптимизации-O1, -O2, и -O3. -O1 — это стандартная настройка, которая заставляет find фильтровать в соответствии с именем файла перед запуском любых других тестов.

-O2 выполняет фильтрацию по имени и типу файла, прежде чем перейти к более сложным фильтрам для поиска файла в Linux. Уровень -O3 переупорядочивает все тесты в соответствии с их относительной стоимостью и вероятностью успеха.

  • -O1 — (по умолчанию) сначала фильтруется по имени файла.
  • -O2 — сначала имя файла, затем тип файла
  • -O3 – разрешить поиску автоматически изменять порядок поиска в зависимости от эффективности использования ресурсов и вероятности успеха.
  • -maxdepth X — поиск в этом каталоге вместе со всеми подкаталогами до уровня X
  • -iname — поиск без учета регистра.
  • -not — выдавать только результаты, не соответствующие тестовому набору.
  • -type f — искать файлы
  • -type d — искать каталоги

Найти файлы по времени их изменения

Команда Linux find позволяет фильтровать иерархию каталогов на основе времени последнего изменения файла:

найти / -name "*jpg" -mtime 5

найти /home/randomuser/ -name "*jpg" -mtime 4

Первоначальная команда Linux find выводит список файлов во всей системе, которые заканчиваются символами jpg и которые были изменены за предыдущие 5 дней. Следующий фильтр отфильтровывает домашний каталог randomuser's на предмет файлов, имена которых заканчиваются на "conf" и которые были изменены за предыдущие 4 дня.

Используйте Grep для поиска файлов по содержимому

Команда find в Linux великолепна, но она может фильтровать дерево каталогов только по имени файла и метаданным. Для поиска файлов на основе того, что они содержат, вам понадобится такой инструмент, как grep. Взгляните:

найти . -type f -exec grep "forinstance" '<>' \; -печать

Это просматривает каждый объект в текущем дереве каталогов (.), который является файлом (-type f), а затем запускает grep «forinstance» для каждого совпадающего файла, а затем печатает их на экране (-print).Фигурные скобки (<>) — это заполнитель для тех результатов, которые соответствуют команде Linux find. Знак <> заключен в одинарные кавычки (‘), чтобы grep не получил искаженное имя файла. Команда -exec заканчивается точкой с запятой (;), которая также нуждается в escape-последовательности (\;), чтобы она не интерпретировалась оболочкой.

До того, как был реализован -exec, xargs использовался бы для создания того же типа вывода:

найти . тип f-print | xargs grep "для примера"

Как найти и обработать файлы с помощью команды Найти в Linux

Параметр -exec запускает команды для каждого объекта, который соответствует выражению find. Посмотрим, как это выглядит:

Это фильтрует все объекты в текущем дереве каталогов (.) для файлов с именем rc.conf и запускает команду chmod o+r для изменения прав доступа к файлам результатов, которые возвращает find.

Корневой каталог Linux — это место, где выполняются команды, запускаемые -exec. Используйте -execdir для выполнения нужной команды в каталоге, где находится совпадение, поскольку при определенных обстоятельствах это может быть более безопасным и повысить производительность.

Параметры -exec или -execdir будут продолжать работать сами по себе, но если вы хотите видеть подсказки перед тем, как они что-либо сделают, замените -exec -ok или -execdir для -okdir.

Как управлять файлами с помощью Plesk?

Допустим, у вас есть веб-сайт, который полностью готов к работе на вашем ноутбуке/настольном компьютере, и вы хотите использовать диспетчер файлов, чтобы загрузить его на сервер Plesk в Linux:

Как редактировать файлы в файловом менеджере

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

  • Редактор HTML или редактор типа "что видишь, то и получаешь". Это хороший вариант, поскольку он добавляет HTML-теги за вас. Если вы не очень хорошо разбираетесь в HTML, этот вариант может оказаться полезным.
  • Редактор кода. Когда вы открываете файлы HTML с помощью этого, вам будет представлен текст, в котором выделен синтаксис HTML. Если вам удобно добавлять HTML-теги самостоятельно, вам подойдет редактор кода.
  • Текстовый редактор. Файлы HTML открываются как обычный текст.

Возможно, ваш администратор Plesk уже настроил расширение Rich Editor, и в этом случае вы можете использовать его для редактирования HTML-файлов. Rich Editor работает по принципу "что видишь, то и получаешь", как и редактор кода, хотя он лучше оснащен такими функциями, как, например, проверка орфографии.

Вот как использовать диспетчер файлов для редактирования файла:

  1. Наведите курсор на файл, и соответствующая ему строка будет выделена.
  2. Откройте контекстное меню файла, щелкнув его.
  3. Нажмите «Редактировать в … редакторе» (это зависит от выбранного вами редактора).

Как изменить разрешения с помощью файлового менеджера

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

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

  1. Наведите на него курсор и подождите, пока не появится выделение, как в предыдущем примере.
  2. Нажмите на файл, чтобы открыть его контекстное меню, и повторите то же самое в разделе "Изменить разрешения".
  3. Внесите изменения и нажмите "ОК". Если вы хотите узнать больше о том, как просматривать и изменять разрешения, см. раздел Настройка разрешений доступа к файлам и каталогам.

Подход File Manager по умолчанию заключается в изменении разрешений нерекурсивным образом, поэтому на вложенные файлы и каталоги не влияют измененные разрешения каталогов более высокого уровня, которым они принадлежат. В Plesk для Linux вы можете заставить Файловый менеджер изменять разрешения рекурсивным образом, предполагая, что ваш администратор Plesk настроил расширение Permissions Recursive и что вы понимаете восьмеричное представление прав доступа к файлам.

Чтобы включить рекурсивное редактирование прав доступа:

  1. Наведите курсор на каталог и дождитесь выделения.
  2. Нажмите, чтобы открыть его контекстное меню, а затем снова выберите Рекурсивный набор разрешений.
  3. Теперь вы можете редактировать их. «Разрешения для папки» говорят о каталоге более высокого уровня и любых связанных с ним подкаталогах. В данном случае «Разрешения на доступ к файлам» применяются к подфайлам.
  4. После внесения изменений в права доступа нажмите "ОК".

Поиск файлов в диспетчере файлов

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

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

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

Предпосылки

Чтобы следовать этому руководству, вам потребуется доступ к компьютеру с операционной системой на базе Linux. Это может быть либо виртуальный частный сервер, к которому вы подключились с помощью SSH, либо ваша локальная машина. Обратите внимание, что это руководство было проверено с использованием сервера Linux с Ubuntu 20.04, но приведенные примеры должны работать на компьютере с любой версией любого дистрибутива Linux.

Если вы планируете использовать удаленный сервер, чтобы следовать этому руководству, мы рекомендуем вам сначала выполнить наше руководство по начальной настройке сервера. Это создаст безопасную серверную среду, включая пользователя без полномочий root с привилегиями sudo и брандмауэр, настроенный с помощью UFW, которые вы сможете использовать для развития своих навыков работы с Linux.

Кроме того, вы можете использовать интерактивный терминал, встроенный в эту страницу, чтобы поэкспериментировать с примерами команд из этого руководства. Щелкните следующее Запустить интерактивный терминал! кнопку, чтобы открыть окно терминала и начать работу в среде Linux (Ubuntu).

Запустите интерактивный терминал!

Примечание. Чтобы проиллюстрировать, как работают команды find и locate, приведенные в этом руководстве примеры команд выполняют поиск файлов, хранящихся в папке / или в корневом каталоге. Из-за этого, если вы вошли в терминал как пользователь без полномочий root, некоторые из примеров команд могут содержать в своем выводе Отказ в доступе.

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

Поиск по имени

Самый очевидный способ поиска файлов — по имени.

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

Это будет чувствительно к регистру, то есть поиск по запросу отличается от поиска по запросу .

Чтобы найти файл по имени, но игнорировать регистр запроса, используйте параметр -iname:

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

Кроме того, вы можете инвертировать поиск, используя восклицательный знак ( ! ), например:

Обратите внимание, что если вы используете ! , вы должны экранировать символ обратной косой чертой ( \ ), чтобы оболочка не пыталась интерпретировать его до того, как find сможет действовать.

Поиск по типу

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

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

  • f : обычный файл
  • d : каталог
  • l : символическая ссылка
  • c : символьные устройства
  • b : заблокировать устройства

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

Эта команда ищет только устройства в каталоге /dev, в котором обычно монтируются файлы устройств в системах Linux:

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

Примечание. В предыдущем примере объединены два выражения запроса поиска; а именно, -type f и -name "*.conf" . Чтобы любой файл был возвращен, он должен удовлетворять обоим этим выражениям.

Вы можете комбинировать подобные выражения, разделяя их параметром -and, но, как показано в этом примере, -and подразумевается каждый раз, когда вы включаете два выражения. Вы также можете вернуть результаты, удовлетворяющие любому выражению, разделив их опцией -or:

В этом примере будут найдены все файлы, имена которых соответствуют запросу query_1 или query_2 .

Фильтрация по времени и размеру

find предоставляет множество способов фильтрации результатов по размеру и времени.

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

  • c : байты
  • k : килобайты
  • M : мегабайты
  • G : гигабайты
  • b : блоки по 512 байт.

Для иллюстрации следующая команда найдет все файлы в каталоге /usr размером ровно 50 байт:

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

Чтобы найти в каталоге /usr файлы размером более 700 мегабайт, можно использовать следующую команду:

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

Время доступа: время последнего чтения или записи файла.

Время модификации: время последнего изменения содержимого файла.

Время изменения: время последнего изменения метаданных индексного дескриптора файла.

Вы можете основывать свои поисковые запросы на этих параметрах, используя параметры -atime , -mtime и -ctime соответственно. Для любого из этих параметров вы должны указать значение, указывающее, сколько дней в прошлом вы хотите выполнить поиск. Как и в случае с параметрами размера, описанными ранее, перед этими параметрами можно поставить символы плюс или минус, чтобы указать «больше» или «меньше».

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

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

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

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

Это даст файлы, которые были изменены за последнюю минуту.

find также может выполнять сравнение с эталонным файлом и возвращать более новые файлы:

Этот синтаксис вернет все файлы в системе, которые были созданы или изменены позже эталонного файла.

Поиск по владельцу и разрешениям

Вы также можете искать файлы по пользователю или группе, которой принадлежит файл, используя параметры -user и -group соответственно. Чтобы найти все файлы в каталоге /var, принадлежащие пользователю syslog, выполните следующую команду:

Аналогичным образом вы можете указать файлы в каталоге /etc, принадлежащие теневой группе, набрав:

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

Если вы хотите сопоставить точный набор разрешений, вы можете использовать этот синтаксис, указав разрешения с помощью восьмеричной записи:

Это будет соответствовать файлам с точно указанными разрешениями.

Если вы хотите указать что-либо с хотя бы этими разрешениями, вы можете поставить перед обозначением разрешений знак минус:

Это будет соответствовать любым файлам, имеющим дополнительные разрешения. В этом случае будет найден файл с правами доступа 744.

Фильтрация по глубине

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

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

После выполнения команд в этом разделе ваш каталог /tmp/ будет содержать три уровня каталогов с десятью каталогами на первом уровне. Каждый каталог (включая временный каталог) будет содержать десять файлов и десять подкаталогов.

Создайте примерную структуру каталогов в каталоге /tmp/ с помощью следующей команды:

После этого заполните эти каталоги несколькими образцами файлов с помощью команды touch:

Установив эти файлы и каталоги, перейдите в только что созданный каталог test/:

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

Это вернет много результатов. Если вы направите вывод в счетчик, вы обнаружите, что всего 1111 результатов:

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

Чтобы найти файл1 только в каталогах уровня 1 и выше, вы можете указать максимальную глубину 2 (1 для каталога верхнего уровня и 1 для каталогов уровня 1):

Это гораздо более управляемый список.

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

Вы можете использовать это, чтобы найти только файлы в конце ветвей каталога:

Опять же, из-за разветвленной структуры каталогов будет возвращено большое количество результатов (1000).

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

Такое сочетание этих параметров значительно сужает результаты: возвращается только 110 строк вместо прежних 1 000.

Выполнение команд по результатам поиска

Вы можете выполнить произвольную вспомогательную команду для всего, что находит совпадения, используя параметр -exec, используя следующий синтаксис:

Кнопка <> используется в качестве заполнителя для файлов, которые находят совпадения. \; позволяет узнать, где заканчивается команда.

Например, предположив, что вы все еще находитесь в каталоге test/, который вы создали в каталоге /tmp/ на предыдущем шаге, вы можете найти файлы в предыдущем разделе, у которых были разрешения 644, и изменить их, чтобы они имели разрешения 664:

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

В этом примере выполняется поиск всех каталогов с разрешениями, установленными на 755, а затем изменяются разрешения на 700 .

Поиск файлов с помощью locate

Альтернативой использованию find является команда locate. Эта команда часто выполняется быстрее и может с легкостью выполнять поиск по всей файловой системе.

Вы можете установить эту команду в Debian или Ubuntu с помощью apt, обновив списки пакетов и затем установив пакет mlocate:

В Rocky Linux, CentOS и других дистрибутивах, производных от RedHat, вы можете вместо этого использовать команду dnf для установки mlocate :

Причина, по которой locate работает быстрее, чем find, заключается в том, что он опирается на базу данных, в которой перечислены все файлы в файловой системе. Эта база данных обычно обновляется один раз в день с помощью cron-скрипта, но вы можете обновить ее вручную с помощью команды updatedb. Запустите эту команду сейчас с привилегиями sudo:

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

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

Это будет соответствовать любым файлам и каталогам, которые содержат строковый запрос в любом месте их пути к файлу. Чтобы возвращать только файлы, имена которых содержат сам запрос, вместо каждого файла, содержащего запрос в каталогах, ведущих к нему, вы можете включить флаг -b для поиска только тех файлов, чье «базовое имя» соответствует запросу:

Чтобы функция locate возвращала только те результаты, которые все еще существуют в файловой системе (имеются в виду файлы, которые не были удалены между последним вызовом updateb и текущим вызовом locate), используйте флаг -e:

Вы можете получить статистику по каталогизированной информации locate с помощью параметра -S:

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

Заключение

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

С этого момента мы рекомендуем вам продолжать экспериментировать с поиском и размещением . Вы можете прочитать их соответствующие справочные страницы, чтобы узнать о других параметрах, не описанных в этом руководстве, и вы можете анализировать результаты поиска и управлять ими, перенаправляя их в другие команды, такие как wc , sort и grep .

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Поиск файлов в Windows по имени с помощью UltraFinder

Вы когда-нибудь забывали, где сохранили файл? Вы помните его название или часть названия, но не местонахождение? Пусть UltraFinder ищет вас! UltraFinder ищет файлы по полному или частичному совпадению имени — это лучшая поисковая система Windows для ваших локальных дисков, сети и даже FTP-серверов!

Первый шаг к поиску файлов — указать, где искать. Вы можете выполнить поиск в одной папке или на нескольких дисках или в нескольких папках/дисках.

Чтобы добавить в поиск папку или весь диск, либо введите путь (например, "C:" или "C:\temp") в адресную строку и нажмите клавишу ВВОД, либо щелкните синюю папку. значок, чтобы найти и выбрать папку или диск.

Примечание. Для поиска файлов по имени на FTP-сайте см. Совет по поиску в папках FTP.

Есть два дополнительных параметра под списком местоположений поиска:

[ ] Искать в подкаталогах
Если этот флажок установлен, UltraFinder будет выполнять рекурсивный поиск файлов во всех подкаталогах, содержащихся в местах поиска.

[ ] Игнорировать скрытые подкаталоги
Если этот флажок установлен, UltraFinder не будет искать файлы в подкаталогах, скрытых в вашей ОС.

Вы можете сообщить UltraFinder, какие имена файлов искать, введя полное или частичное имя файла в поле «Найти».

Если вы хотите отфильтровать поиск имени файла по определенному расширению(-ям), вы можете указать это в поле В файлах/типах. Например, если вы хотите найти только документы Word, введите *.doc;*docx.

Вы также можете исключить из поиска подкаталоги, чтобы сэкономить время. Для этого введите имя папки, которую вы хотите исключить, в поле «Игнорировать подкаталоги». Любые папки, соответствующие имени, указанному здесь, не будут найдены. Вы также можете указать в этом поле полный путь к папке.

Наконец, вы также можете указать имена и типы файлов, которые следует игнорировать, в поле Игнорировать файлы/типы. Например, если вы хотите избежать возврата каких-либо результатов, содержащих «журнал» в имени файла, вы можете указать здесь «*журнал*». Это позволит отфильтровать файлы с именами «blog.html», «log.txt» и «stats.log».

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

В правой части приложения есть несколько дополнительных параметров поиска, которые можно включить для поиска файлов по имени с помощью UltraFinder.

[ ] Поиск совпадений по содержимому файла или имени файла
Это определяет, ищете ли вы текст в файле или ищете текст в имени файла. Для поиска файлов по имени следует установить значение Имя файла. Чтобы узнать, как искать текст в файлах, см. Совет по поиску и поиску текста в файлах.

[ ] Регулярные выражения
Это позволяет использовать регулярные выражения в строке поиска. С помощью регулярных выражений вы можете найти имена файлов, соответствующие шаблону, а не статической строке. Подробнее о регулярных выражениях в стиле UltraEdit и Unix можно узнать здесь, а о регулярных выражениях Perl — здесь.

[ ] Соответствовать целому слову
Если флажок установлен, UltraFinder будет сопоставлять файл только в том случае, если его имя содержит строку поиска как целое слово, то есть если оно заключено в границы слова (пробел, запятая, точка, так далее.). Например, если строка поиска — "отчет", то файл с именем "Отчет о результатах кампании.docx" будет найден, а файл с именем "ResultsReport.docx" — нет.

[ ] Учитывать регистр
Если флажок установлен, UltraFinder будет искать имена файлов с учетом регистра. Это может быть особенно полезно для Windows, где имена файлов не чувствительны к регистру.

[ ] Использовать файловый индекс
Если флажок установлен, UltraFinder будет использовать собственный файловый индекс операционной системы для поиска файлов по имени. Преимущество этого варианта заключается в том, что ваш поиск будет выполняться в несколько раз быстрее, чем в противном случае!

[ ] Фильтр по дате изменения/создания
Эта настройка позволяет ограничить поиск определенным диапазоном дат. Например, вы можете искать только те файлы, которые были изменены в течение последних 7 дней.

[ ] Фильтр по размеру
Эта настройка позволяет ограничить поиск файлами в указанном диапазоне размеров.

[ ] Фильтр по атрибуту
Эта настройка позволяет ограничить поиск файлами с определенными атрибутами.

После настройки поиска по имени файла нажмите «Пуск». Поиск завершится, и вы увидите результаты, записанные в окне результатов.

На вкладке результатов окна вывода UltraFinder покажет каждый файл, соответствующий строке поиска. Вы можете отсортировать результаты, нажав на заголовки столбцов. Например, если щелкнуть заголовок столбца Размер, файлы будут отсортированы от самого маленького до самого большого. При повторном нажатии кнопки «Размер» файлы будут отсортированы от наибольшего до наименьшего.

Вы можете дважды щелкнуть результат файла или строки, чтобы открыть этот файл в связанном с ним приложении.Вы также можете сравнить файлы из окна результатов, выбрав один или несколько файлов, щелкнув их правой кнопкой мыши и выбрав Загрузить в UltraCompare. Чтобы открыть один из результатов в UltraEdit, щелкните правой кнопкой мыши и выберите Открыть выбранное в UltraEdit.

Наконец, вы можете щелкнуть правой кнопкой мыши результаты, чтобы скопировать их любым способом в буфер обмена или открыть как новый файл в UltraEdit!

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

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

Искомая команда — найти. Чтобы сделать понимание этой команды еще более заманчивым, как только вы ее узнаете, вы можете начать использовать ее в своих сценариях Bash. Это не только удобство, но и мощность.

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

Как использовать команду поиска

Когда я впервые увидел Linux в 1997 году, я не совсем понимал, как работает команда find; поэтому он никогда не работал так, как я ожидал. Это казалось простым; введите команду find FILENAME (где FILENAME — это имя файла), и команда должна была найти файл и сообщить об этом. Мало ли я знал, что в команде было что-то большее, чем это. Многое другое.

Если вы введете команду man find, вы увидите, что синтаксис команды find следующий:

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

Теперь посмотрим, как это работает.

Найти по имени

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

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

имя — с учетом регистра

iname — без учета регистра

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

Однако, если вы измените команду с помощью параметра -iname, команда find найдет ваш файл независимо от регистра. Итак, новая команда выглядит так:

Найти по типу

f – обычный файл

l — символическая ссылка

c — символьные устройства

b – блокировать устройства

Теперь предположим, что вы хотите найти все блочные устройства (файл, который ссылается на устройство) в вашей системе. С помощью параметра -type мы можем сделать это следующим образом:

Приведенная выше команда приведет к довольно большому объему вывода (большая часть которого указывает на отказ в доступе), но будет содержать вывод, аналогичный следующему:

Вуаля! Блокировать устройства.

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

Приведенная выше команда просматривает всю структуру каталогов, чтобы найти все обычные файлы, оканчивающиеся на .conf. Если вы знаете, что большинство ваших конфигурационных файлов находятся в каталоге /etc, вы можете указать это так:

Приведенная выше команда выведет список всех ваших файлов .conf из каталога /etc (рис. 1).

Рисунок 1. Расположение всех файлов конфигурации в каталоге /etc.

Вывод результатов в файл

Одним очень удобным приемом является вывод результатов поиска в файл. Когда вы знаете, что вывод может быть обширным, или если вы хотите просмотреть результаты позже, это может быть невероятно полезным.Для этого мы будем использовать тот же пример, что и выше, и передать результаты в файл с именем conf_search. Эта новая команда будет выглядеть так: ​

Теперь у вас будет файл (conf_search), содержащий все результаты выполненной команды find.

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

Теперь мы подходим к моменту, когда команда find становится невероятно полезной. У меня были случаи, когда настольные компьютеры или серверы обнаруживали, что их диски загадочным образом заполнены. Чтобы быстро освободить место (или помочь найти проблему), вы можете использовать команду find для поиска файлов определенного размера. Скажем, например, вы хотите увеличить размер и найти файлы размером более 1000 МБ. Команда поиска может быть запущена с помощью параметра -size следующим образом:

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

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

b — блоки по 512 байт

Продолжайте учиться

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

Поделиться этой записью

Авторское право © 2022 The Linux Foundation®. Все права защищены. Linux Foundation зарегистрировала товарные знаки и использует товарные знаки. Список товарных знаков The Linux Foundation см. на нашей странице «Использование товарных знаков». Linux является зарегистрированным товарным знаком Линуса Торвальдса. Условия использования | Политика конфиденциальности | Устав | Антимонопольная политика | Политика хорошей репутации

Читайте также: