Команда «Поиск файлов»
Команда «Поиск файлов»Команда «Найти файлы»
Данная команда доступна как в режиме управления файлами, так и в режиме управления архивами. С помощью диалога «Поиск файлов» можно искать файлы, содержащие указанную строку, либо в открытом архиве, либо в выделенных папках или дисках. Ниже приведено описание элементов диалога.
- Искомые имена файлов
По умолчанию в этом поле указана звёздочка ( * ), т.е. будут просматриваться все файлы. При желании вы можете ввести здесь другую маску файлов, например, чтобы выполнить поиск только в TXT-файлах, введите «*.txt». Допускается указывать несколько масок файлов, разделяя их пробелами. Если требуется указать имя файла, содержащее пробелы, его нужно заключить в кавычки.
- Искомая строка
Здесь вы можете указать строку для поиска. Если оставить это поле пустым, WinRAR покажет все файлы, удовлетворяющие выбранным критериям.
- Учитывать регистр букв
Включите этот параметр, если вы хотите, чтобы при сравнении строк учитывался регистр букв (прописные/строчные).
- Использовать все таблицы
Если включить этот параметр, то при поиске строки будут использоваться таблицы символов ANSI, Unicode и OEM (MS-DOS). Если же параметр выключен, WinRAR при поиске использует только стандартную таблицу символов Windows (ANSI).
- Шестнадцатеричный поиск
Если параметр включён, введённая строка будет рассматриваться программой как последовательность шестнадцатеричных значений, разделённых пробелами.
- Диски и папки
Это поле содержит список дисков, папок или архивов, в которых нужно выполнить поиск. Кроме того, вы можете выбрать из выпадающего списка предопределённые значения <Текущая папка>, <Локальные жёсткие диски>, а также отдельные диски.
- Типы архивов
Типы архивов, в которых нужно выполнить поиск. По умолчанию в этом поле указана звёздочка ( * ), что означает «все поддерживаемые архивные форматы», однако если вы хотите найти данные только в архивах RAR, то укажите «*.rar». Допускается указывать несколько масок архивов, разделяя их пробелами. По техническим причинам в WinRAR не выполняет поиск текста в архивах ACE и 7-Zip, для остальных форматов, поддерживаемых WinRAR, этого ограничения нет.
- Поиск во вложенных папках
Этот параметр заставляет WinRAR выполнять поиск не только в указанной папке, но также и в её вложенных папках.
- Поиск в файлах
Если включён этот параметр, WinRAR будет также искать данные в обычных (не архивированных) файлах в соответствии с указанным именем файла.
- Поиск в архивах
Этот параметр включает поиск в архивных файлах. Чтобы выполнить поиск нужной строки в архивах и обычных файлах, включите оба параметра — «Поиск в файлах» и «Поиск в архивах».
Кнопка «Сохранить»
Эта кнопка сохраняет текущее состояние диалога, чтобы оно было автоматически восстановлено при следующем вызове.
Эквивалент командной строки: команда «i»
- Перевести на английский
Поиск файлов и папок в Linux | HippoLab
В качестве вступительного слова дадим некоторое описание того, как вообще можно совершать поиск в linux. Для этих целей есть множество программ, но некоторые из них уже стали классикой поиска в linux. Подчеркнем, в данной статье мы сконцентрируемся исключительно на linux. Это означает, что даже если вы встретите утилиты с теми же самыми названиями в Solaris или операционных системах на ядрах BSD, приведенные советы могут работать не всегда. Так же это относится к busybox, которая реализует лишь небольшую часть функциональности оригинальных утилит.
Итак встречайте героев сегодняшнего обзора: locate — предоставляет поиск по имени файла в заранее подготовленной базе данных, find — работает на реальной файловой системе и предоставляет невероятные возможности для поиска файлов и папок по различным параметрам. Также мы расскажем вскользь о grep — утилите для поиска текста в файлах.
Чтобы выполнить просто поиск файла по имени в Linux логичнее использовать команду locate — за счет заранее подготовленной базы она быстро выдаст нужный результат:
$ locate myfilename
Если же вы получили сообщение о том, что команда не найдена, возможно её нужно установить. Для Debian-based дистрибутивов (Ubuntu, Mint) установить её можно командой:
# apt-get install mlocate
Пользователям RedHat, CentOS и Fedora стоит выполнить
# yum install mlocate
После установки нужно создать/обновить базу данных — файл, содержащий в себе «снимок» файловой системы, благодаря которому locate работает так быстро:
# updatedb
Т. е. вместо того, чтобы каждый раз проходиться по всей файловой системе, locate доверяет updatedb создать файл, содержащий в себе все имена и пути файловой системы, и выполняет поиск в нем. Важно поддерживать его актуальность, иначе вы можете случайно найти уже давно удаленные файлы, или не найти новые. Поэтому updatedb при инсталляции «вешается» на CRON и выполняется автоматически — вы можете в этом убедиться, посмотрев на файлы заданий CRON.
Куда более мощным и гибким инструментом для поиска файлов и папок в Linux выступает команда find. Её синтаксис упрощенно выглядит так:
find [path...] [expression]
Поиск файла по имени
Чтобы выполнить в linux поиск файла по имени по всей файловой системе нужно ввести:
# find / -name myfilename
Учтите, что в данном случае поиск будет идти по имени файла в точности соответствующему заданному. Чтобы сымитировать поведение команды locate для find следует ввести:
# find / -name "*part_of_name*"
«*» означает любое количество любых символов. Это дает нам возможность также производить поиск файлов по расширению:
# find / -name "*.jpg"
Поиск файла по дате
Вот пример того, как можно выполнить поиск в Linux файла по дате:
# find /home -mtime -5
Данная команды выведет все файлы из каталога /home, измененные не более 5-ти дней назад.
Поиск файла по размеру
А так, например, можно выполнит поиск файлов по размеру:
# find /home -size +1G
Данная команды выведет все файлы из каталога /home, имеющие размер более одного гигабайта. Очень удобно для поиска больших файлов в linux
Поиск папки
На самом деле поиск папки в linux ничем не отличается от поиска файла, так как папка — это файл. Однако find дает нам возможность указать тип. Например, чтобы явно выполнить поиск только папок, имена которых содержат слово, например, mysql, выполните
# find / -type d -name "*mysql*"
Здесь ключ «-type» указывает на тип. На текущий момент времени find поддерживает следующие типы:
b - блочное устройство
c - символьное устройство
d - папка (дирректория)
p - именнованный канал
f - обычный файл
l - символическая ссылка
s - сокет
D - дверь (только для Solaris)
Подробнее о различных параметрах поиска find вы можете почитать, введя команду
$ man find
Да, grep действительно очень хорош, когда речь заходит о поиске текста в файлах в linux по паттерну. Сразу оговоримся, что искать текст мы будем в файлах в формате plain text — чистый текст, таких как конфигурационные файлы, сценарии командного интерпретатора (bash. python, php…) и др. Искать по файлам Word и Excel грепом эффективно вряд ли получится.
Итак, чтобы выполнить поиск строки по всем файлам в каталоге, например /etc следует ввести
# grep -lri root /etc/*
Такая команда выведет имена всех файлов, в которых удастся найти заветные 4 буквы «root». root /etc/*
Крышка в начале слова «root» обязывает grep выводит только те файлы, где слово «root» стоит в начале строки. И таких трюков достаточно много. Если вы еще не знакомы с regex, то стоит начать хотябы с википедии
Как найти файл в Linux из командной строки
Допустим, у вас есть веб-сайт, который полностью готов к работе на вашем ноутбуке/настольном компьютере, и вы хотите использовать File Manager , чтобы загрузить его на Plesk на Сервер Linux:
- На вашем компьютере вам нужно взять папку со всеми файлами вашего веб-сайта и добавить ее в сжатый архив в одном из обычных форматов (ZIP, RAR, TAR, TGZ или TAR). .ГЗ).
- В Plesk перейдите к Files , щелкните папку httpdocs, чтобы открыть ее, щелкните Загрузите , выберите файл архива и нажмите Открыть .
- Как только вы загрузите его, установите флажок, который вы видите рядом, а затем Извлечь файлы .
Как редактировать файлы в диспетчере файлов
Диспетчер файлов позволяет редактировать страницы вашего веб-сайта по умолчанию. Для этого вы можете использовать:
- HTML-редактор или редактор типа «что видишь, то и получаешь», что является хорошим вариантом, поскольку он добавляет теги HTML за вас. Если вы не очень хорошо разбираетесь в HTML, этот вариант может оказаться полезным.
- Редактор кода. Когда вы открываете файлы HTML с помощью этого, вам будет представлен текст, в котором выделен синтаксис HTML. Если вам удобно добавлять HTML-теги самостоятельно, тогда вам подойдет редактор кода.
- Текстовый редактор. Файлы HTML открываются как обычный текст.
Возможно, ваш администратор Plesk уже установил расширение Rich Editor, и в этом случае вы можете использовать его для редактирования файлов HTML. Rich Editor работает по принципу «что видишь, то и получаешь», точно так же, как редактор кода, хотя он лучше оснащен такими функциями, как, например, проверка орфографии.
Вот как использовать File Manager для редактирования файла:
- Наведите курсор на файл, и соответствующая ему строка будет выделена.
- Откройте контекстное меню файла, щелкнув по нему.
- Щелкните Редактировать в … Редакторе (это зависит от выбранного вами редактора).
Как изменить разрешения с помощью файлового менеджера
Есть некоторые веб-страницы и файлы, которыми вы не обязательно хотите делиться со всем миром, и здесь может пригодиться изменение их настроек разрешений.
Для этого найдите элемент, для которого вы хотите ограничить доступ в Интернет, например:
- Наведите на него курсор и подождите, пока не появится выделение, как в предыдущем примере.
- Нажмите на файл, чтобы открыть его контекстное меню, и сделайте то же самое еще раз на Изменить разрешения .
- Внесите изменения и нажмите OK . Если вы хотите узнать больше о том, как просматривать и изменять разрешения, в разделе Настройка разрешений доступа к файлам и каталогам.
Подход File Manager по умолчанию заключается в изменении разрешений нерекурсивным образом, поэтому на вложенные файлы и каталоги не влияют измененные разрешения каталогов более высокого уровня, которым они принадлежат. В Plesk для Linux вы можете заставить Файловый менеджер изменять разрешения рекурсивным образом, предполагая, что ваш администратор Plesk настроил расширение Permissions Recursive и что вы понимаете восьмеричную нотацию прав доступа к файлам.
Чтобы включить рекурсивное редактирование прав доступа:
- Наведите курсор на каталог и дождитесь выделения.
- Нажмите, чтобы открыть его контекстное меню, а затем снова Установить разрешения рекурсивно .
- Теперь вы можете редактировать их. «Разрешения для папки» говорят о каталоге более высокого уровня и любых связанных с ним подкаталогах. «Разрешения на доступ к файлам» в данном случае применяются к подфайлам.
- После внесения изменений в разрешения нажмите OK .
Поиск файлов в диспетчере файлов
У вас есть небольшая свобода действий при поиске файлов. Файловый менеджер может искать определенный фрагмент текста либо в имени файла, либо в содержимом, либо в том и другом. Вы можете выбрать, как вы хотите, чтобы он искал файлы, щелкнув значок, который появляется рядом с выбранным вами полем поиска, а затем щелкнув любой тип, который вы предпочитаете.
Как найти в каталоге все файлы, начинающиеся с имени «ABC»?
спросил
Изменено 3 года назад
Просмотрено 624k раз
Мне нужно найти файлы, начинающиеся с определенного имени. Может быть несколько файлов, начинающихся с определенного шаблона, и я хочу перечислить все такие файлы, присутствующие в каталоге.
- каталог
- поиск
- регулярное выражение
Чтобы завершить существующие ответы:
Утилита списка каталогов по умолчанию ls
может использоваться в сочетании с подстановочными знаками оболочки. Для поиска всех файлов с шаблоном abc
:
ls -d abc* # список всех файлов, начинающихся с abc--- ls -d *abc* # список всех файлов, содержащих --abc-- ls -d *abc # список всех файлов, оканчивающихся на --abc
Обратите внимание, что расширение файла также имеет значение для результатов поиска.
В случае, если нам нужно перечислить файлы в дереве каталогов, мы также можем выдать tree
для поиска заданного шаблона, например:
tree -P 'abc*' # список дерева каталогов файлов, начинающихся с abc--- tree -l 'def*' # исключить файлы, начинающиеся с def---
В этом случае дерево
само по себе поддерживает подстановочные знаки.
6
Вы можете использовать команду find
для поиска файлов с шаблоном
find . -type f -name "abc*"
Приведенная выше команда будет искать файл, начинающийся с abc, в текущем рабочем каталоге. 9\./ABC’
… и замените ABC
вашим текстом.
Чтобы понять команду, давайте немного разберем ее:
find
выводит список всех файлов в текущем каталоге и его подкаталогах; используя только его, вы просто перечислите все, что там есть. Обратите внимание, чтоfind
выводит каждый файл или каталог, начинающийся с./
, указывая, что их путь относится к текущему каталогу. Важно знать об этом, потому что это означает, что мы будем искать результаты, начинающиеся с 9.\./АВС .- Обратите внимание, что шаблон заключен в одинарные кавычки
' '
, чтобы оболочка не интерпретировала специальные символы внутри него.
- Обратите внимание, что шаблон заключен в одинарные кавычки
Теперь сам шаблон записывается с использованием особого синтаксиса, который называется регулярное выражение или сокращенно регулярное выражение .
.
в регулярном выражении также имеет особое значение: это означает «соответствовать любому отдельному символу здесь». Если вы хотите использовать его как буквальную точку, вам придется «экранировать» его, используя обратную косую черту\
перед ним. (Да, сопоставление любого символа в нашем случае было бы безвредно, но я сделал это для полноты картины.)
1
Вы можете искать конкретный шаблон с помощью файлового менеджера Nautilus и регулярных выражений.
Для этого нажмите Select Items Matching в меню Gear, как показано ниже (вы также можете нажать Ctrl + s ).
Затем просто введите регулярное выражение ABC*
и подтвердите.
Каждый файл, имя которого соответствует вашему шаблону, будет выбран автоматически. 9аб»
1
вы можете использовать GREP, я думаю, что это самое простое решение, возможно, вы также добавите некоторые другие параметры grep, чтобы совпадение было более точным
tree | grep ABC
Если вы не знаете каталог, в котором находятся файлы ABC*
, и у вас есть миллионы файлов, команда locate
— самый быстрый способ.
$ найти/ABC /mnt/clone/home/rick/.cache/mozilla/firefox/9fu0cuql.default/cache2/записи/ABC6AD2FEC16465049B48D39FD2FE538258F2A34 /mnt/clone/home/rick/.cache/mozilla/firefox/9fu0cuql.default/cache2/entries/ABCBFDA54262F47253F95ED6ED4131A465EE0E39 /mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCABC.sh /mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBCDA.sh /mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBDDA.sh /mnt/old/home/rick/.cache/mozilla/firefox/3vkvi6ov.default/cache2/entries/ABC0C99FCEABAD0C6AA2078CD025A1CDE48D7BA1 /usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCABC.sh /usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBCDA.sh /usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBDDA.sh
Примечания:
- Приведенная выше команда выполняется за 1 секунду для 1 миллиона файлов.
- Для сравнения, команда
find
, начиная с корневого каталога/
, будет очень долго и будет генерировать много ошибок разрешений. - Если файлы были созданы сегодня, вы должны сначала запустить
sudo updatedb
.
Command-t в одном из моих любимых плагинов vim, это плагин на основе ruby над интеграцией с FZF.
Используя Comamnd-T и FZF, вы можете выполнять поиск с чрезвычайно быстрым «нечетким» механизмом для:
- Открытие файлов и буферов
- Переход к тегам и помощи
- Запущенные команды или предыдущие поиски и команды
- с минимальным количеством нажатий клавиш.
Как видите
Я всегда ищу в истории команд, открывая новый терминал и нажимая:
CTRL+R
В дополнение к рекурсивному поиску во всех папках, написав в любой вкладке терминала:
fzf
Затем начните имя файла
ABC
Также вы можете написать внутри vim
:CommandT
Действительно полезно, особенно в больших папках.
Я использую
ls | grep abc 9ABC/ && print $File::Find::name },".")'
printf "%s" /путь/к/файлам/ABC*
Это сопоставление шаблона глобуса, которое закреплено на обоих концах. Это будет соответствовать всем вхождениям файлов, начинающихся с «ABC», таких как «ABC», «ABC.txt», «ABC123», но не «xABC». В командной строке использование «ls» вместо «printf» является безопасной альтернативой, однако, в зависимости от того, с чьим мнением вы согласны, «ls» небезопасно для использования в сценарии. В этом случае использование ‘printf’ с сопоставлением шаблонов glob считается безопасным. Если вы собираетесь использовать это в скрипте, вывод ‘printf’ не будет содержать символ новой строки до конца выходного потока как такового:
printf "%s" /путь/к/файлам/ABC*
Возвращает:
/путь/к/файлам/ABC /путь/к/файлам/ABC123
Если вам нужны разрывы строк после каждого экземпляра:
printf "%s\n" /path/to/files/ABC*
Возвраты:
/путь/к/файлам/ABC /путь/к/файлам/ABC123
«/путь/к/файлам/» остается в выводе, если вы ввели его таким образом при запуске команды «printf». Без него появляется только имя файла:
printf "%s" ABC*
Возвращает
ABC ABC123
Предположим, что вы запускаете команду в каталоге, в котором существуют файлы.
1
Предположим, что я нахожусь в корневом каталоге и мне нужен только список каталога etc: пишем,
find -type d -name "etc"
результат получаем,
[root@unix /]# find -type d -name "etc" .