2.5. Поиск файлов

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

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

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

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

Команда find имеет такой синтаксис:

– каталог в котором будем искать

– дополнительные параметры, например, глубина поиска, и т д

– по какому критерию будем искать: имя, дата создания, права, владелец и т д.

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

Основные параметры команды find

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

  • -P – никогда не открывать символические ссылки.
  • -L – получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
  • -depth – искать сначала в текущем каталоге, а потом в подкаталогах.
  • -mount искать файлы только в этой файловой системе.
  • -version – показать версию утилиты find.
  • -print – выводить полные имена файлов.
  • -type f – искать только файлы.
  • -type d – поиск папки в Linux.

Критерии

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

  • -name – поиск файлов по имени.
  • -perm – поиск файлов в Linux по режиму доступа.
  • -group – поиск по группе.
  • -mtime – поиск по времени модификации файла.
  • -atime – поиск файлов по дате последнего чтения.
  • -nogroup – поиск файлов, не принадлежащих ни одной группе.
  • -newer – найти файлы новее чем указанный.
  • -size – поиск файлов в Linux по их размеру.

Примеры использования

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

Поиск всех файлов

Показать все файлы в текущей директории:

find . -print

2.5. Поиск файлов

Все три команды покажут одинаковый результат. Точка здесь означает текущую папку. В место неё можно указать любую другую.

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

Показать все файлы в указанной директории:

2.5. Поиск файлов

Искать файлы по имени в текущей папке:

find . -name “*.png

2.5. Поиск файлов

Поиск по имени в текущей папке:

find . -name “testfile*”

Не учитывать регистр при поиске по имени:

find . -iname “TeStFile*”

2.5. Поиск файлов

Ограничение глубины поиска

Поиска файлов по имени в Linux только в этой папке:

find . -maxdepth 1 -name “*.php”

Инвертирование шаблона

Найти файлы, которые не соответствуют шаблону:

find . -not -name “test*”

Несколько критериев

Поиск командой find в Linux по нескольким критериям, с оператором исключения:

find . -name “test” -not -name “*.php”

Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:

find -name “*.html” -o -name “*.php”

Эта команда найдёт как php, так и html файлы.

Тип файла

По умолчанию find ищет как каталоги, так и файлы. Если вам необходимо найти только каталоги используйте критерий type с параметром d. Например:

find . -type d -name “Загрузки”

2.5. Поиск файлов

Для поиска только файлов необходимо использовать параметр f:

find . -type f -name “Загрузки”

2.5. Поиск файлов

Несколько каталогов

Искать в двух каталогах одновременно:

find ./test ./test2 -type f -name “*.c”

Поиск скрытых файлов

Найти скрытые файлы только в текущей папке. Имена скрытых файлов в Linux начинаются с точки:

find . -maxdepth 1 -type f -name “.*”

2.5. Поиск файлов

Поиск по разрешениям

Найти файлы с определенной маской прав, например, 0664:

sudo find /usr -type f -perm /u=s

2.5. Поиск файлов

Поиск файлов доступных владельцу только для чтения только в каталоге /etc:

find /etc -maxdepth 1 -perm /u=r

2.5. Поиск файлов

Найти только исполняемые файлы:

find /bin -maxdepth 2 -perm /a=x

Поиск файлов в группах и пользователях

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

Поиск файлов в Linux принадлежащих группе:

find /var/www -group www-data

2.5. Поиск файлов

Поиск по дате модификации

Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:

Поиск файлов в Linux открытых N дней назад:

Найти все файлы, модифицированные между 50 и 100 дней назад:

find / -mtime +50 -mtime -100

Найти файлы измененные в течении часа:

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

Найти все файлы размером 50 мегабайт:

find / -size 50M

От пятидесяти до ста мегабайт:

find / -size +50M -size -100M

Найти самые маленькие файлы:

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

find /tmp -type f -empty

find ~/ -type d -empty

2.5. Поиск файлов

Действия с найденными файлами

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

2.5. Поиск файлов

Удалить все текстовые файлы в tmp

Удалить все файлы больше 100 мегабайт:

Выводы

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

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

В этой инструкции мы рассмотрим что такое команда grep Linux, подробно разберём синтаксис и возможные опции grep, а также приведём несколько примеров работы с этой утилитой.

Что такое grep?

Название команды grep расшифровывается как “search globally for lines matching the regular expression, and print them”. Это одна из самых востребованных команд в терминале Linux, которая входит в состав проекта GNU. До того как появился проект GNU, существовала утилита предшественник grep, тем же названием, которая была разработана в 1973 году Кеном Томпсоном для поиска файлов по содержимому в Unix. А потом уже была разработана свободная утилита с той же функциональностью в рамках GNU.

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

Синтаксис grep

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

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

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

Опции

Давайте рассмотрим самые основные опции утилиты, которые помогут более эффективно выполнять поиск текста в файлах grep:

Все самые основные опции рассмотрели, теперь давайте перейдём к примерам работы команды grep Linux.

:/>  Как узнать операционную систему компьютера или ноутбука и ее разрядность | Компьютер для чайников

Примеры использования grep

Давайте перейдём к практике. Сначала рассмотрим несколько основных примеров поиска внутри файлов Linux с помощью grep.

Поиск текста в файле

В первом примере мы будем искать информацию о пользователе root в файле со списком пользователей Linux /etc/passwd. Для этого выполните следующую команду:

grep root /etc/passwd

В результате вы получите что-то вроде этого:

2.5. Поиск файлов

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

grep -i “time” /etc/passwd

2.5. Поиск файлов

В этом случае Time, time, TIME и другие вариации слова будут считаться эквивалентными. Ещё, вы можете указать несколько условий для поиска, используя опцию -e. Например:

grep -e “root” -e “daemon” /etc/passwd

2.5. Поиск файлов

C помощью опции -n можно выводить номер строки, в которой найдено вхождение, например:

grep -n ‘root’ /etc/passwd

2.5. Поиск файлов

2.5. Поиск файлов

Теперь вы знаете как выполняется поиск текста файлах grep.

Фильтрация вывода команды

2.5. Поиск файлов

В остальном всё работает аналогично.

Базовые регулярные выражения

grep “^r” /etc/passwd

2.5. Поиск файлов

Или же строки, которые содержат большие буквы:

2.5. Поиск файлов

А так можно найти все строки, которые заканчиваются на ready в файле /var/log/dmesg:

grep “ready$” /var/log/dmesg

2.5. Поиск файлов

Но используя базовый синтаксис вы не можете указать точное количество этих символов.

Расширенные регулярные выражения

В дополнение ко всем символам из базового синтаксиса, в расширенном синтаксисе поддерживаются также такие символы:

  • + – одно или больше повторений предыдущего символа;
  • ? – ноль или одно повторение предыдущего символа;

Для активации расширенного синтаксиса нужно использовать опцию -E. Например, вместо использования опции -e, можно объединить несколько слов для поиска вот так:

2.5. Поиск файлов

Вообще, регулярные выражения grep – это очень обширная тема, в этой статье я лишь показал несколько примеров. Как вы увидели, поиск текста в файлах grep становиться ещё эффективнее. Но на полное объяснение этой темы нужна целая статья, поэтому пока пропустим её и пойдем дальше.

Вывод контекста

Иногда бывает очень полезно вывести не только саму строку со вхождением, но и строки до и после неё. Например, мы хотим выбрать все ошибки из лог-файла, но знаем, что в следующей строчке после ошибки может содержаться полезная информация, тогда с помощью grep отобразим несколько строк. Ошибки будем искать в /var/log/dmesg по шаблону “Error”:

grep -A4 “Error” /var/log/dmesg

Выведет строку с вхождением и 4 строчки после неё:

2.5. Поиск файлов

grep -B4 “Error” /var/log/dmesg

Эта команда выведет строку со вхождением и 4 строчки до неё. А следующая выведет по две строки с верху и снизу от вхождения.

grep -C2 “Error” /var/log/dmesg

2.5. Поиск файлов

Рекурсивный поиск в grep

До этого мы рассматривали поиск в определённом файле или выводе команд. Но grep также может выполнить поиск текста в нескольких файлах, размещённых в одном каталоге или подкаталогах. Для этого нужно использовать опцию -r. Например, давайте найдём все файлы, которые содержат строку Kernel в папке /var/log:

grep -r “Kernel” /var/log

2.5. Поиск файлов

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

grep -rI “Kernel” /var/log

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

grep -rIs “Kernel” /var/log

Выбор файлов для поиска

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

grep -r –include=”*.log” “Kernel” /var/log

2.5. Поиск файлов

А для того чтобы исключить все файлы с расширением .journal надо использовать опцию –exclude:

grep -r –exclude=”*.journal” “Kernel” /var/log

Поиск слов в grep

Когда вы ищете строку abc, grep будет выводить также kbabc, abc123, aafrabc32 и тому подобные комбинации. Вы можете заставить утилиту искать по содержимому файлов в Linux строки, которые включают только искомые слова полностью с помощью опции -w. Например:

grep -w “root” /etc/passwd

2.5. Поиск файлов

Количество строк

Утилита grep может сообщить, сколько строк с определенным текстом было найдено файле. Для этого используется опция -c (счетчик). Например:

grep -c ‘Kernel’ /var/log/dmesg

2.5. Поиск файлов

Инвертированный поиск

Команда grep Linux может быть использована для поиска строк, которые не содержат указанное слово. Например, так можно вывести только те строки, которые не содержат слово nologin:

grep -v nologin /etc/passwd

2.5. Поиск файлов

Вывод имен файлов

Вы можете указать grep выводить только имена файлов, в которых было хотя бы одно вхождение с помощью опции -l. Например, следующая команда выведет все имена файлов из каталога /var/log, при поиске по содержимому которых было обнаружено вхождение Kernel:

grep -lr ‘Kernel’ /var/log/

2.5. Поиск файлов

Цветной вывод

По умолчанию grep не будет подсвечивать совпадения цветом. Но в большинстве дистрибутивов прописан алиас для grep, который это включает. Однако, когда вы используйте команду c sudo это работать не будет. Для включения подсветки вручную используйте опцию –color со значением always:

sudo grep –color=always root /etc/passwd

2.5. Поиск файлов

Вот и всё. Теперь вы знаете что представляет из себя команда grep Linux, а также как ею пользоваться для поиска файлов и фильтрации вывода команд. При правильном применении эта утилита станет мощным инструментом в ваших руках. Если у вас остались вопросы, пишите в комментариях!

Маска — это условие
(шаблон) для поиска файла с использованием
символов «*» и
«?». Знак «*» заменяет любое количество
символов в маске в пределах от 1 до 211,
знак «?» —
один произвольный символ или его
отсутствие.

*.
* — поиск всех файлов из указанного
диапазона поиска;

*.doс
— поиск всех файлов с расширением dос;

???. * — поиск всех
файлов с именем не более чем из трех
символов;

а*. * — поиск всех
файлов, имена которых начинаются на
букву «а».

Чтобы осуществить
поиск объектов, необходимо в главном
меню Пуск
выбрать
команду Поиск,
появится
диалоговое окно Результат
поиска.

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

  • в
    поле Часть
    имени файла или имя файла целиком: (рис.
    11)
    ввести
    имя файла
    или задать маску поиска;
  • в поле Слово
    или фраза в файле: можно
    ввести фрагмент текста, который должен
    содержать искомый файл;

Задания
для тренировки 9. Поиск
файлов.

  • На
    всем компьютере найти все файлы с
    расширением bmр.
  • Скопировать из
    окна поиска два файла в папку под своей
    фамилией.

Задания
для тренировки 10. Удаление
файлов и папок.

  • В папке Письма
    выделить
    два файла и удалить.
  • Очистить содержимое
    папки Корзина.

Программа
Проводник Рекомендации
к
выполнению заданий

Проводник — это
служебная программа, относящаяся к
категории диспетчеров файлов. Она
предназначена для навигации по файловой
структуре компьютера и ее обслуживания.
Проводник полностью внедрен в операционную
систему ^УшсЬлуз
ХР.
Окно программы Проводник имеет две
рабочие области: левую панель — панель
папок и
правую панель — панель содержимого.

Программу Проводник
можно запустить:

  • с помощью команды
    контекстного меню кнопки Пуск, Проводник;
  • с
    помощью команды Проводник контекстного
    меню значка Мой компьютер. Примечание.
    В
    операционной системе ^пкюамз
    ХР
    окно Проводника можно отобразить,
    непосредственно открыв любое окно,
    например папку Мои

документы,
в этом случае должна быть включена
кнопка Папки на
панели

Цель
работы: ознакомиться
с составлением шаблонов и работой
команды поиска файлов find.

Шаблоны
или маски
позволяют указать на множество файлов,
имена которых соответствуют некоторому
образцу. Шаблоны имен файлов организуются
на основе использования метасимволов,
имеющих специальное значение. Применяются
в командах управления и обработки файлов
и каталогов (cp,
find
и др.)

В
соответствии со стандартом POSIX (Portable
Operating System Interface for Unix, переносимый интерфейс
операционных систем Unix) при указании
шаблонов в командах управления файлами
и каталогами можно использовать
предопределенные диапазоны
или классы
символов.

:/>  КАК: Как удалить значения UpperFilters и LowerFilters - 2021

Использование классов имеет следующие
особенности:

-print
— вывод полных имен найденных файлов
в стандартный поток вывода;

-name
шаблон — поиск файлов
по шаблону имени. Шаблон
должен быть заключен в двойные кавычки;

-regex
шаблон — поиск файлов
по регулярному выражению. Фактически
полный путь к файлу сравнивается с
регулярным выражением ^шаблон$;

-perm
режим — поиск файлов
с заданным режимом доступа. Задание
режима аналогично абсолютному режиму
команды chmod;

-group
группа — поиск файлов,
принадлежащих указанной группе
пользователей;

-newer
файл — поиск файлов,
созданных позднее, чем указанный файл.
Для создания файла с определенной датой
и временем используется команда

где
дата
описывается в формате ММДДччмм
(месяц-день-часы-минуты);

-type
тип — поиск файлов
заданного типа (f,
d,
c,
b,
p,
l,
s);

Для задания сложных критериев с применяют
логические операции:

! выражение
— отрицание выражения;

выражение1
выражение2
— конъюнкция. Так же можно использовать
конструкцию выражение1
–a
выражение2;

выражение1
–o
выражение2 — дизъюнкция.

Если задается сложный критерий поиска,
то возможно использовать скобки,
записываемые как последовательность
«пробел, обратный слэш, скобка, пробел»,
например,

find ~ –size +1M ( -name
“*.gz” –o –name “*.zip” )

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

  • определите,
    сколько файлов в каталоге /bin
    имеют имена, состоящие из трех символов;
  • в
    домашнем каталоге осуществите поиск
    файлов, имена которых содержат один
    из символов a,b,c,d,e;
  • используя
    классы, найдите файлы с произвольным
    расширением, имена которых состоят
    ровно из двух букв в верхнем регистре.

Завершите
работу с файловой оболочкой.

  • Проверьте
    последовательно существование файлов
    HOSTNAME
    и crontab
    в каталоге /etc.
  • Осуществите
    в каталоге /dev
    поиск всех файлов, имена которых
    начинаются на tt,
    используя шаблоны имен файлов.
  • Используя
    шаблоны, осуществите в каталоге /etc
    поиск всех файлов, имена которых состоят
    не менее, чем из 5 символов и второй
    символ находится в диапазоне от a
    до q.
  • Осуществите
    в каталоге /usr/bin
    поиск всех файлов, имена которых
    начинаются на au
    с выводом информации в файл au.txt,
    находящийся в домашнем каталоге.
    Просмотрите
    содержимое файла au.txt.
  • Осуществите
    в каталоге /usr
    поиск каталогов, имена которых начинаются
    на li.
  • Определите
    права доступа каталога mode
    и осуществите в домашнем каталоге поиск
    каталогов, которые имеют права доступа,
    аналогичные каталогу mode.
  • Осуществите
    в домашнем каталоге поиск всех файлов,
    владельцем которых является текущий
    пользователь и текущая группа
    пользователей.
  • В
    домашнем каталоге осуществите поиск
    файлов, которые были созданы в течение
    последних 10 дней.
  • В
    домашнем каталоге осуществите поиск
    файлов, которые были созданы позднее
    10 дней назад, но ранее 6 дней назад.
  • Осуществите
    в каталоге /usr/lib
    поиск всех файлов, размер которых более
    1 Мб,
    но менее 2 Мб.
  • В
    домашнем каталоге осуществите поиск
    всех символических ссылок.

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

Общий
синтаксис команды find имеет
следующий вид:

Параметр
“список_каталогов” определяет, где
искать нужный файл. Проще всего задать
в качестве начального каталога поиска
корневой каталог /, однако, в таком случае
поиск может затянуться очень надолго,
так как будет просматриваться вся
структура каталогов, включая смонтированные
файловые системы (в том числе сетевые,
если таковые есть). Можно сократить
объем поиска, если задать вместо одного
корневого каталога список из нескольких
каталогов (естественно, тех, в которых
может находиться искомый файл):

Началом
“критерия_поиска”, определяющего,
что именно должна искать программа
find, считается первый аргумент, начинающийся
на “-“, “(“, “)”‘, “,” или
“!”. Все аргументы, предшествующие
“критерию поиска”, трактуются как
имена каталогов, в которых надо производить
поиск. Если не указано ни одного пути,
поиск производится только в текущем
каталоге и его подкаталогах.

Чаще
всего шаблоны имен файлов строятся с
помощью специальных символов “*”
и “?”. Значок “*” используется
для замены произвольной строки символов.
В Linux

• “*”
– соответствует всем файлам, за исключением
скрытых;


“.*” – соответствует всем скрытым
файлам (но также текущему каталогу “.”
и каталогу уровнем выше “..”: не
забывайте об этом!);


“*.*” – соответствует только тем
файлам и каталогам, которые имеют “.”
в середине имени, или оканчиваются на
точку;


“p*r” – соответствует и “peter” и
“piper”;


“*c*” – соответствует и “picked” и
“peck”.

Значок
? заменяет один произвольный символ,
поэтому index?.htm будет
соответствовать именам index0.htm, index5.htm и
indexa.htm.

Таблица 4.4. Критерии поиска для команды
find

Другие
простые критерии вы можете узнать, если
просмотрите man-страницу
о командеfind. Здесь же
надо только сказать, что из простых
критериев можно строить более сложные
с помощью логических операций and, or или
операции отрицания, знаком которой
служит восклицательный знак. Например,
если вы хотите найти все файлы, имена
которых оканчиваются на .txt и .doc, то
критерий можно записать как (-name
*.txt -or -name *.doc).

Можно
комбинировать таким образом любое число
критериев (и не только простых!). Если
операция не указана явно, то подразумевается
-and, т. е. вместо (-name
*.txt -and –name *.doc) можно записать просто
(-name *.txt -name *.doc). Если
применяется только одна операция-and
или!, то скобки
обычно можно опустить, а с операцией-or и в сложных выражениях
скобки необходимы. Перед скобкой нужно
поставить обратную косую черту, а после
скобки – пробел. Например, если вы хотите
найти каталог по его имени, то можно
сделать это командой

или (с соблюдением
правил построения сложных критериев)

В
следующем примере мы ищем файлы по
такому критерию: либо имя файла
оканчивается на .tmp, либо размер файла
больше 100 Кбайт.

В
последнем примере стоит обратить
внимание на то, что перед значением
размера стоит знак “+”. Такой знак
можно использовать с любым числовым
параметром в критериях поиска команды
find. Он означает, что
нужно искать файлы, у которых значение
параметра больше заданного. Соответственно,
знак “-” означает, что надо искать
файлы, у которых значение параметра
меньше заданного. Если знаки + или –
отсутствует, ищутся файлы, у которых
значение параметра равно заданному.

Чтобы
закончить рассмотрение команды find,
надо сказать еще о том, что после критерия
поиска в этой команде можно сразу же
задать операцию, которая будет применяться
ко всем файлам, найденным по указанному
критерию. Простейшим примером использования
такой возможности является указание
команды-print.

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

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

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

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

Вкладка “Стандартный”

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

2.5. Поиск файлов

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

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

  • В открытых вкладках – будут использоваться только каталоги открытых вкладок (вкладки активной и неактивной панелей).
  • Выделенные файлы и каталоги – если включено, то поиск будет вестись только среди выделенных в активной панели файлов и папок.
  • – если будет найдена символьная ссылка на каталог, целевой каталог будет прочитан и использован, иначе эта символьная ссылка будет считаться обычным файлом.
  • – список каталогов, которые нужно исключить из поиска, здесь мы можем указать имена папок и относительные или абсолютные пути.
  • Глубина вложенности подкаталогов может принимать значения:
    число уровней (на выбор от 1 до 100),Эта настройка управляет глубиной “погружения” по дереву каталогов во время поиска. Указав “только текущий”, мы ограничим поиск папкой, указанной в строке “Начинать с каталога” (подкаталоги просматриваться не будут).
  • число уровней (на выбор от 1 до 100),
:/>  Поставил новый жесткий диск но компьютер его не видит виндовс 10

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

  • Искать в архивах – если включено, Double Commander дополнительно попытается прочитать содержимое всех архивов в каталоге(ах) поиска. Список поддерживаемых форматов зависит от добавленных архиваторных плагинов.
  • Поиск по части имени – необходимо отключить, если хотим использовать точное имя файла.
  • – если включено, можно использовать регулярные выражения.
  • – список имён файлов, которые нужно исключить из поиска. Также поддерживаются маски.

Примечание: , , Начинать с каталога и позволяют ввести несколько значений, разделённых точкой с запятой “;” (без пробелов). Если необходимо найти файл с точкой с запятой в имени, мы можем использовать регулярные выражения.

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

  • Файлы, НЕ содержащие этот текст – заставляет программу показывать только те файлы, в содержимом которых не найден текст, указанный в поле Искать в файле текст.
  • С учётом регистра – указывает, что прописные буквы нужно отличать от строчных. Т.е. “Fallout” и “fallout” будут восприниматься как разные.
  • – поиск шестнадцатеричных символов (без учёта регистра, с пробелами между символами или без, например, “C0 C1 C2” или “c0c1c2”).
  • – включает поиск в файлах Microsoft Office (DOCX, XLSX) и OpenOffice/LibreOffice (ODT, ODS).
  • Также можно указать кодировку (UTF, ISO, KOI, DOS, ANSI и т.д.), включить регулярные выражения.

Примечание о кодировке текста: Мы можем задать кодировку текста или использовать одно из специальных значений:

  • Windows: системная кодировка ANSI по умолчанию.
  • – системная кодировка ANSI по умолчанию (зависит от языковых стандартов системы).
  • – системная кодировка OEM (DOS) по умолчанию (зависит от языковых стандартов системы).

Кнопка (

2.5. Поиск файлов

) позволяет указать более одной кодировки.

Кнопка запускает поиск, останавливает, а закрывает окно поиска файлов.

– очищает поле результатов и позволяет запустить поиск заново (возможно, с другими условиями).

– загружает параметры из предыдущего поиска (в текущей сессии, до закрытия Double Commander).

Для удаления ненужных записей из истории полей ввода используйте Shift+Del.

Вкладка “Расширенный”

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

2.5. Поиск файлов

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

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

  • сравнить имена файлов;
  • сравнить размеры файлов;
  • сравнить хеши: будет использоваться контрольная сумма BLAKE2b (x64) или BLAKE2s;
  • сравнить содержимое файлов (побайтовое сравнение).

В результате будут показаны имена файлов, номер группы совпадающих файлов и расположение файлов. Также после передачи списка в панель мы можем использовать специальный режим выделения, где можно выбрать только дубликаты:
и Снять выделение с группы в подменю (внутренние команды cm_MarkPlus и cm_MarkMinus).

Поиск файлов с определёнными атрибутами

Для поиска по атрибутам необходимо использовать шаблон, который определяет, какие атрибуты искать и их состояние (установлены ли они или сняты).

Одиночный атрибут представляется в следующем формате:

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

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

В Unix/Linux также можно использовать восьмеричное представление разрешений. Например, 0750 – то же самое, что и комбинация ur, uw, ux, gr и gx.

Расширенные паттерны

Некоторые атрибуты могут быть объединены в группу с отношением И, просто укажите один шаблон за другим.

Например: r+s+h+ соответствует файлам, у которых установлены все три атрибута: только для чтения, системный и скрытый.

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

В шаблонах, объединённых в группу с отношением И, можно использовать оператор “не равно”, добавив символ “!” в начале.

Например: !r+s+h+ соответствует файлам, которые не имеют всех трёх атрибутов: только для чтения, системный и скрытый. Соответствующий файл может не иметь ни одного, иметь один или два из этого набора атрибутов, но не все сразу.

  • или не установлен атрибут только для чтения (аналогично r-)
  • или не установлены атрибуты системный и скрытый.

Поиск с помощью поисковых (DSX) или информационных (контентных, WDX) плагинов (описание типов плагинов и их установка описаны здесь).

Пример поиска изображений по ширине с минимальным и максимальным значениями:

2.5. Поиск файлов

Интерфейс DSX-плагинов позволяет отправлять им значения параметров из вкладок “Стандартный” и “Расширенный”, точный список передаваемых значений зависит от возможностей конкретного плагина.

WDX-плагины дополняют поиск, их поля можно комбинировать по следующим правилам:

  • И (все правила) – все условия должны совпадать.
  • ИЛИ (любое правило) – достаточно одного совпадения.

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

Вкладка “Шаблоны поиска”

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

Под списком шаблонов расположено поле с подсказкой: для выделенного шаблона отображаются значения и Начинать с каталога (если он был сохранён).

Вкладка “Результаты”

Эта вкладка содержит результат поиска (просто список полных имён файлов) и следующие кнопки:

  • – открывает выбранный файл в окне просмотрщика (F3).
  • – открывает выбранный файл в редакторе (F4).
  • Файлы на панель – передаёт список найденных файлов в активную файловую панель.

Также доступно контекстное меню:

  • Убрать из списка (или Del) – позволяет убрать из списка неподходящие результаты (файловая система не будет затронута).
  • Показать все найденные – отменяет действие предыдущей команды.

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

Клавиши стрелка влево и стрелка вправо переключают фокус между списком результата поиска и кнопкой .

Дополнительные настройки

2.5. Поиск файлов

  • Поиск по части имени – Если не отмечено, Double Commander будет искать точное совпадение имени.
  • При запуске поиска очистить фильтр маски файла – Если отмечено, Double Commander будет каждый раз автоматически очищать поле .
  • Текущие фильтры после нажатия “Новый поиск” – устанавливает состояние остальных параметров поиска: Double Commander сохранит их, сбросит до состояния по умолчанию или спросит.
  • Показать меню окна в “Поиск файлов” – Это меню содержит команды диалога поиска файлов (также показаны горячие клавиши) и пункты для быстрого перехода к этому разделу настроек и к настройкам горячих клавиш.
  • Шаблон поиска по умолчанию – Мы можем выбрать один из сохранённых ранее шаблонов поиска и Double Commander будет использовать его параметры в качестве параметров по умолчанию каждый раз, когда вызываем диалог поиска файлов.

Поиск текста в файлах:

  • Использовать отображение в память – При таком поиске файл читается в оперативную память целиком и происходит её просмотр на наличие искомого текста (поиск идёт быстрее, но требуется больше памяти).
  • – Если используется этот метод, то файл читается по частям и в каждой части идёт поиск нужного текста (медленнее, зато потребует меньше ресурсов).

2.5. Поиск файлов

2.5. Поиск файлов

2.5. Поиск файлов

Оставьте комментарий