0 / 0 / 0 Регистрация: 18.04.2015 Сообщений: 13 |
|
1 |
|
Поиск файлов по списку из файла27.04.2020, 12:13. Показов 11368. Ответов 9
Добрый день! Есть задача: Имеется файл список.txt со списком файлов примерного содержания: Кликните здесь для просмотра всего текста
f1.xml Нужно найти все указанные в списке файлы во всех подпапках и скопировать их в новую папку
0 |
Karen87 2408 / 968 / 444 Регистрация: 29.05.2016 Сообщений: 4,222 |
||||
27.04.2020, 12:51 |
2 |
|||
Пробуйте:
Добавлено через 8 минут
0 |
0 / 0 / 0 Регистрация: 19.01.2021 Сообщений: 15 |
|
03.02.2021, 13:08 |
3 |
Karen87, добрый день.
0 |
Karen87 2408 / 968 / 444 Регистрация: 29.05.2016 Сообщений: 4,222 |
||||
03.02.2021, 13:17 |
4 |
|||
viberezh, добрый. Вот так, наверное:
0 |
alpap 4331 / 2121 / 661 Регистрация: 26.04.2015 Сообщений: 6,823 |
||||
04.02.2021, 14:49 |
5 |
|||
0 |
0 / 0 / 0 Регистрация: 19.01.2021 Сообщений: 15 |
|
05.02.2021, 10:32 |
6 |
alpap, добрый день. Добавлено через 20 минут Добавлено через 5 минут
0 |
Karen87 2408 / 968 / 444 Регистрация: 29.05.2016 Сообщений: 4,222 |
||||
05.02.2021, 13:59 |
7 |
|||
viberezh, пробуйте:
Добавлено через 11 минут
0 |
alpap 4331 / 2121 / 661 Регистрация: 26.04.2015 Сообщений: 6,823 |
||||||||||||
05.02.2021, 17:50 |
8 |
|||||||||||
возможно её исключить из поиска?
вывести в отдельный текстовый файл позиции из списка, которые не удалось найти? усложнит код существенно, ну хотя бы так (вы ведь задаете неполную маску файла, соответственно и «не найдем» мы что-то виртуальное)
Добавлено через 6 минут
0 |
Karen87 2408 / 968 / 444 Регистрация: 29.05.2016 Сообщений: 4,222 |
||||
05.02.2021, 18:25 |
9 |
|||
Исправленный скрипт:
Примечание. Сохранять строго в кодировке OEM-866
0 |
alpap 4331 / 2121 / 661 Регистрация: 26.04.2015 Сообщений: 6,823 |
||||||||
05.02.2021, 22:40 |
10 |
|||||||
viberezh, на powershell поаккуратнее будет, пути свои поставьте, кодировку использовал utf-8, должна работать и 1251
запускать так:
1 |
-
#1
Коллеги, приветствую!
Имеется текстовый файл (*.txt) с неким набором данных вида
———————
бла-бла-бла1
бла-бла-бла2
бла-бла-бла3
бла-бла-бла4
бла-бла-бла5
——————-
Это части имен файлов (цифры только чтобы показать что они разные).
Как «оптом» запустить, если в принципе возможно, поиск файлов, содержащих в именах все перечисленное?
-
#3
Но не зайти((
А возиться с обходными путями по некоторым причинам низя))
George
I wish I was a monster you think I am
-
#4
линкедин только через впн.
-
#5
Но не зайти((
А возиться с обходными путями по некоторым причинам низя))
Объясню словами. Нужно упомянутый тобой тектовый файл положить в директорию, в которой будет производиться поиск, и в строку места поиска вбить путь к этому файлу и присовокупить спереди знак «@».
-
tc_search.png
9.9 КБ
· Просм.: 115
Последнее редактирование: 28.08.2022
-
#6
Не получается((
-
#7
«-» и «–» являются разными символами, согласись.
-
#8
Дык я список то этот в тхт из ТС скопировал (думал, что «К» могли быть русскими или наоборот)…
В редакторе вбиваю «минус» на цифровой клавиатуре. Он просто в редакторе отображается как тире.
Последнее редактирование: 28.08.2022
-
#9
Я полагаю, что так работать не будет. В текстовом файле для поиска строки должны быть вида *k-0455*
. Тогда сработает.
Последнее редактирование: 28.08.2022
-
#10
Так и есть((
В таком случае проще в тексте символ перевода каретки заменить на «* *» + в конце и в начале «*»
и вставить в строку поиска…
На сайте с 15.12.2005
Offline
775
14 декабря 2016, 12:32
#1
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
На сайте с 01.12.2006
Offline
264
14 декабря 2016, 12:35
#2
FileLocator
Достаточно мощная утилита. По спискам тоже ищет.
На сайте с 03.03.2011
Offline
60
14 декабря 2016, 12:58
#3
в тотале Alt+F7 и ищите файлы как угодно
список можно преобразовать в строку через пробел, типа «custom* single*»
1
На сайте с 04.12.2009
Offline
92
14 декабря 2016, 13:02
#4
Масол:
FileLocator
Достаточно мощная утилита. По спискам тоже ищет.
спасибо! Подскажете, где там по файлу искать (списку имен), не могу найти(
———- Добавлено 14.12.2016 в 16:03 ———-
u3Bepr:
в тотале Alt+F7 и ищите файлы как угодно
там в сроку помещается ограниченно количество имен. как сразу искать по 200 имен не понятно
На сайте с 03.11.2008
Offline
1561
15 декабря 2016, 08:15
#5
sten-s:
там в сроку помещается ограниченно количество имен.
Не «ограниченно количество имен», а 2047 символов.
sten-s:
как сразу искать по 200 имен не понятно
Можно использовать регулярки.
Можно переключиться на вкладку «плагины» стандартного поиска ТС.
Можно спросить на руборде, а тут потом поделиться найденным решением.
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
PA
На сайте с 12.02.2016
Offline
24
15 декабря 2016, 10:47
#6
как все тут сложно…
sten-s:
Есть список названий файлов — около 2000. Нужно их все найти на компе. Вроде, простая задача, но не пойму как это сделать. в тотал коммандере нет такого( или я не нашел
1. Создаем список существующих файлов на компе с полными путями.
find . -type f >filelist.txt
2. Из этого списка выбираем необходимые «около 2000» файлов.
grep -f search2000.txt filelist.txt >result.txt
Это все.
Под виндой есть порты финда и грепа.
Upd: почитал хелп у дир-а, под виндай первый пункт можно сделать нативно:
dir /b /s /a:-d >filelist.txt
. . .
На сайте с 03.11.2008
Offline
1561
15 декабря 2016, 14:48
#7
ps axf:
Создаем список существующих файлов на компе с полными путями.
А???!!!!
Моё сердце стало быстрее, чем взорвался процессор и кончилась память компа
1
Введение
С течением времени на жестком диске компьютера накапливается огромное количество информации. Прежде всего, это периодические электронные журналы типа Internet Zone, почтовые рассылки и просто Веб-страницы и целые сайты, которые мы загружаем на диск в надежде найти им достойное применение потом, когда-нибудь. Чтобы воспользоваться полезной информацией, которой мы часто запасаемся впрок, необходимо иметь хороший поисковик, который позволял бы быстро и удобно находить нужную страницу, открывать ее и использовать в работе. Программ, которые подходили бы для целей поиска не так уж и много.
Мне известно несколько таких программ, о которых и пойдет речь далее. Для примеров и сравнительного тестирования я буду использовать папку, в которой у меня собраны журналы Internet Zone. Объем папки 139 мегабайт, количество файлов — 23075, формат файлов — HTML.
Поисковая утилита AVSearch
«Программа предназначена для поиска файлов по фрагментам текста в любой русской кодировке. Возможен поиск в архивах, в КЭШах Web-браузеров, на сетевых дисках, в «Корзине» и т.д.» — так представляет свою программу сам автор.
Из характеристик поисковика основное значение имеют следующие:
Доступные форматы файлов — TXT, HTML, RTF, архивные и бинарные файлы.
Язык запросов — логические операции И, ИЛИ, НЕТ, ? (любой символ в маске).
Зона поиска — реальная папка на диске.
Удобная навигация среди найденных файлов и возможность открыть любой из них непосредственно в поисковике — это обязательное свойство в данной программе присутствует.
В рабочем состоянии поисковик выглядит так:
Здесь можно прочитать характеристики тестового поиска: искались документы, содержащие слово «norton». Поиск занял 3 минуты 57 секунд, было просмотрено 28623 файла и найдено 464, удовлетворяющих поисковому заданию.
Контекстное меню для найденного файла имеет такой вид:
Просмотреть текст документа можно в правом окне целиком, но при открытии документа из контекстного меню он открывается в браузере и становятся работоспособными гиперссылки и графика.
Сервис, предоставляемый этой программой вполне удовлетворительный, а значительное время сканирования большой папки компенсируется тем, что не требуется предварительного индексирования зоны поиска, обязательного при добавлении новых папок и файлов.
Отметим, что программа — русскоязычная, и разобраться в ее применении очень просто.
Домашняя страница: http://www.avtlab.ru/software.htm
Ссылка для загрузки программы (821 Кбайт): линк
Поисковая система diskMETA- Lite
Основное окно этого поисковика выглядит так:
Здесь виден результат поиска по тестовому запросу «norton». Найдено 57 документов (в AVSearch — 464). Оказывается, в этом бесплатном варианте индексируются для поиска только 1000 документов, поэтому большая часть файлов поисковой зоны оказались проигнорированными, а результат, соответственно, куцым. Другим ограничением бесплатного варианта является возможность использования только двух зон поиска. Хотя эта программа больше похожа на рекламный ролик, посмотрим ее характеристики:
Формат документов — DOC, TXT, HTML. В платной версии дополнительно — XLS, RTF.
Язык запросов — логические операторы И, И НЕ, ИЛИ, операторы уточнения запроса, учет грамматической формы ключевых слов.
Зона поиска — индексный файл. Использование индексного файла позволяет производить поиск мгновенно (в AVSearch — 4 минуты) за счет того, что сканирование уже выполнено при индексации. Но, если Зона поиска изменилась, то для получения корректного результата индексирование нужно произвести
заново, причем, в нашем конкретном случае оно займет время более 4 минут для полнофункционального варианта данной программы.
Результаты поиска выдаются отсортированными по мере убывания адекватности запросу. Приводится фрагмент документа с ключевыми словами. Для просмотра документ открывается внешним Приложением, в нашем случае, браузером.
Домашняя страница: http://www.diskmeta.com/
Ссылка на страничку загрузки: линк
Примечание: Для загрузки нужно посетить страницу и заполнить небольшую форму. Полнофункциональный вариант распространяется по принципу: «Деньги вперед».
Персональная поисковая система «Ищейка»
Так назван русскоязычный вариант поисковика, разработки немецкой фирмы iSLeuthHound Technologies. Основное окно с результатом тестового поиска выглядит так:
Как видим, здесь по запросу «norton» найдено всего 23 документа. То же, что и в предыдущем случае — поисковая зона ограничена числом до 500 файлов для данного бесплатного варианта, поэтому и результат получился скудным.
Основные характеристики:
Формат документов — TXT, DOC, RTF, HTML. С плагинами дополнительно — ZIP, PDF, ASP, XLS.
Язык запросов — логические операторы И, ИЛИ, НЕТ, скобки (), учет словоформы ключевых слов.
Зона поиска — индексный файл.
С найденным файлом можно распорядиться в соответствии с контекстным меню:
Документ открывается внешним Приложением в соответствии с типом файла. Имеется возможность посмотреть, как выглядит полнофункциональный вариант этой программы. Этот вариант — англоязычный и имеет гордое имя TheSleuthhound! Pro 4.21 PowerPack. Давайте посмотрим:
Так выглядит окно управления с фирменными символами, а так — окно с результатом тестового поиска:
Здесь найдено 452 документа, и мы вплотную приблизились к результату (AVSearch — 464). Видно, что найденные документы отсортированы по дате создания, но можно сортировать по признаку: Имя, Папка, Размер, Время создания.
В целом, нужно отметить, что уровень программы довольно высокий — профессионально сделана для профессионального применения.
Примеры непрофессионального применения поисковой системы «Ищейка»: имея такой быстрый поисковик и приличную информационную базу, можно, наверное, кроме прямого поиска нужных документов использовать как-то и другие возможности. Я, например, нашел одно применение, связанное со статистикой. Так статистика слова Траффик равна 63, а слова Трафик = 162, откуда следует, что по большинству голосов лучше писать Трафик а не Траффик. Броузер = 162, Браузер = 1139; В общем = 1932, Вобщем = 9 и т.д. Вот такая интересная статистика по правописанию.
Индексный файл: При индексации Зоны поиска под именем I-Zone объемом 139 мегабайт, эта программа отобрала 13104 подходящих файла и описала их в нескольких бинарных файлах формата CNK, расположив их в папке ИщейкаDBi-zone с общим размером 38.5 Мбайт. Под Индексным файлом, видимо, надо подразумевать всю эту папку.
Сравнение с обычными поисковиками: Обычные поисковики файлов, такие, например, как в Windows Commander, неплохо и достаточно быстро обрабатывают простые запросы (из одного слова). Трудности начинаются при дальнейшем поиске в найденных файлах. Поскольку контекста нет, придется открывать и просматривать каждый файл, что при простом запросе практически невозможно из-за большого их числа. Чтобы сократить число найденных файлов, можно развернуть запрос, например, так как это сделано в следующем примере:
Здесь вместо ключевого слова «norton» , по которому было найдено 460 файлов введена фраза «Norton Utilities 2000» , по которой найдено всего 4 файла. Для проверки качества поиска привлечена полнофункциональная «Ищейка», которая нашла по этому запросу 9 документов, причем все они — правильные. Это говорит о том, что простые поисковики файлов не обеспечивают качественного поиска информации. С такими документами, как DOC, PDF, RTF простые поисковики вообще не работают.
Поисковая программа «Ищейка» — очень хорошая, быстрая, удобная и понятная программа, которая, к тому же, работает безотказно.
Домашняя страница: http://www.isleuthhound.com/ru/sleuthhound/
Ссылка для загрузки программы (2.24 Мбайт): линк
Поисковая утилита Xteq X-Find
«Просто выберите, где и что нужно найти, и нажмите «go»; это — все, что Вы должны делать. Вы можете даже определить текст, который должен быть внутри файлов» — так представляет свою программу сам автор.
Этикетка разработчика и самой программы выглядит так:
Основное окно с результатом тестового поиска имеет следующий вид:
Как видим, по запросу «norton» найдено 460 документов, то есть первый тест прошел успешно. В собственном окне программы можно просмотреть каждый документ полностью, причем ключевое слово подсвечивается. Все файлы в просмотрщике открываются, как текстовые, то есть формат HTML мы видим вместе с тегами. Это не очень удобно, но разобраться в содержании можно. В окне программы контекстное меню Проводника не действует, поэтому открыть документ нормальным способом здесь нельзя.
Продолжим тестирование:
Запрос «norton utilites» — 6 («Ищейка» нашла 10).
Как видим, этот результат — не совсем удачный, но у программы имеется немало привлекательных качеств. Это:
Малый размер (181 Кбайт),
Ненужность инсталляции,
Простота применения( ни одной настройки),
Удобный интерфейс (три панели),
Четкая отработка простых запросов,
Бесплатность и доступность распространения.
Все это свидетельствует о том, что для многих пользователей этот миниатюрный поисковик может стать удобным и полезным инструментом.
Домашняя страница: http://xteq.com/products/xfnd/index.html
Ссылка для загрузки программы (181 кб): линк
Agent Ransack
Основное окно (продвинутый вариант) этого поисковика выглядит так:
Здесь виден результат поиска по тестовому запросу «norton». Найдено 425 документов («Ищейка» — 453). Этот тест будем считать успешным. Результат второго теста по запросу «norton utilites» виден на следующей картинке:
Здесь виден вид окна в упрощенном варианте, а также результат поиска. Найдено 10 файлов («Ищейка» — 10). Результат вполне удачный.
Эта утилита имеет и другие привлекательные особенности:
С началом поиска открывается окно анимации с показом папок сканирования в данный момент, а также Прогресс-бар и числовой указатель состояния поиска. Все это очень удобно и оставляет приятное впечатление о программе.
В окне просмотра показываются строки с ключевым словом, которое подсвечивается. Объем фрагмента достаточен, чтобы уяснить содержание всего документа в контексте ключевого слова.
В окне списка найденных файлов в полном объеме действует контекстное меню Проводника, что позволяет открыть, копировать, переместить и т.д. найденный файл.
Организация поиска:
Название файла. Если название не задается, это означает, что нужно смотреть все файлы. Лучше задать тип файла, например, *.htm — это может значительно сократить время поиска. Так, тест «norton» в первом случае выполняется 3 минуты 53 секунд, а во втором варианте (с маской) — 2 минуты 51 секунду, на минуту быстрее.
Содержание файла. Задается как строковое выражение. Чем больше слов в строке, тем точнее задание и тем более подходящих документов будет отсеяно, поскольку поисковик не учитывает автоматически словоформы и варианты строки.
Зона поиска. Задается в виде одной папки ( кнопка Browse for Single Folder) или нескольких папок (кнопка Browse for multiple Folder).
Регулярные выражения. «Регулярные выражения — это механизм, позволяющий задать шаблон для строки и осуществить поиск данных, соответствующих этому шаблону в заданном тексте». Регулярные выражения в данном поисковике могут применяться как для задания ключевой строки, так и имени файла и существенно уточнить запрос. Но, к сожалению, воспользоваться этим механизмом сложновато — нужно не только хорошо уяснить сами правила составления шаблона, но еще и набить хоть немного руку на этом деле. Помощь в составлении шаблонов оказывает Мастер (кнопка Expression Wizard), но чтобы воспользоваться Мастером, правила все равно нужно знать.
Использование регулярных выражений — это, наверное, признак профессионального применения данной программы. Но и при любительском использовании данным поисковиком можно получать вполне приличные и полезные результаты, что позволяет мне рекомендовать эту программу пользователям, которые регулярно занимаются поиском информации на собственном компьютере, и которых «Ищейка» по каким-то причинам не устраивает.
Домашняя страница: http://www.agentransack.com/
Ссылка для загрузки программы (1.5 Мбайт): линк
EF Find
Внешний вид поисковика с результатами второго теста с ключевой строкой «norton utilites» показан на картинке:
Как видим, найдено 10 файлов («Ищейка» — 10 ). Это хороший показатель. Обращаем внимание на наличие русскоязычного интерфейса и на отсутствие контекстного просмотра ключевого слова. Что можно сделать с найденными файлами хорошо видно на следующей картинке:
Здесь раскрыто содержание меню «Файл», в котором можно уточнить смысл двух команд:
Выполнить — для файла HTML означает — открыть в web-браузере,
Редактировать — означает открыть в Блокноте.
Хотя текстовый поиск — не основное назначение это утилиты, надо отметить, что эту задачу она выполняет хорошо. На второй картинке видно, что по первому тесту с ключевым словом «norton» найдено 420 файлов, что является вполне нормальным. Наиболее существенным достоинством утилиты является поиск в архивах ACE, ARC, ARJ, BZIP2, CAB, GZIP, LHA, RAR, TAR, TGZ, ZIP и ZOO. Найти в дистрибутиве Windows нужную библиотеку — дело и скучное, и долгое. EF Find проделывает такую работу и весело, и быстро. На следующей картинке показан пример поиска библиотеки:
Как видим, поиск завершился успешно. С найденной библиотекой можно обойтись так, как позволяет Проводник Windows и Архиватор по умолчанию. В архивах можно производить также текстовый поиск. Дополнительно к сказанному можно отметить еще следующие возможности поисковой утилиты EF Find:
Сохранение результатов поиска: Экспортировать список можно в файл формата TXT, CSV или HTM. В последнем случае список сохраняется в виде таблицы, а найденные файлы — в виде гиперссылок, которые можно активизировать для просмотра в браузере или для запуска исполняемых файлов.
Регистрация и дерегистрация модулей: Найденные модули OCX, DLL (драйверы и библиотеки) можно зарегистрировать в реестре или наоборот снять регистрацию, если модуль удаляется.
Имена файлов: В дополнение к тому, что мы видим на картинках, имена файлов могут задаваться списком, через запятую, или с использованием регулярных выражений.
Отметим, что показанные выше скриншоты сделаны при работе с программой версии 1.3. В последней версии (2.3) вид основного окна несколько изменился, но смысл и содержание программы остались прежними.
В целом, нужно признать, что EF Find — хороший поисковик, в некоторых случаях — просто незаменимый, но, к сожалению — платный. Незарегистрированная программа работает недостаточно хорошо.
Основной сайт: http://www.efsoftware.com
Ссылка для загрузки программы (993 Кбайт): линк
Ссылка для загрузки программы (вер. 1.3, 370 Кбайт): линк
File Finder
«Быстрый и простой поиск любых файлов на вашем компьютере или в локальной сети» — так представляет свою программу автор.
Имя файла и место поиска: Это основная вкладка программы, на которой формируется задание на поиск (запрос). Если требуется найти файл по имени, то указывается зона поиска — папка, включающая вложенные папки и имя файла, в котором можно использовать символы (*) и (?). В текстовом поиске имя файла не указывается, но желательно указать тип файла.
Тип файла: Как видим, этот поисковик может работать практически со всеми типами файлов, включая такие форматы, как DOC, XLS, PDF, HTML, TXT — главные форматы, в которых распространяется различная документация и повседневная информация. Задавая тип файла, мы уточняем запрос и ускоряем поиск, так как при сканировании неотмеченные типы файлов не просматриваются.
Вкладка «Дополнительно»: На этой вкладке можно уточнить задание на поиск, в частности, указать нужно ли учитывать регистр буквенных символов, нужно ли просматривать ZIP-архивы и в каких кодировках искать текстовую строку. Для кириллицы поддерживаются все возможные кодировки, что особенно важно, если основной формат ваших документов — HTML.
Еще более сузить зону поиска можно, задав интервал дат создания или изменения интересующих нас файлов. При необходимости так можно отсечь устаревшие документы или, наоборот, слишком новые.
Настройка: На этой вкладке задаются долговременные параметры поисковика, смысл которых, в основном, ясен из их названия. После опции «Отчет» идут опции, определяющие состав (содержание) собственно «Отчета» — текстового списка найденных файлов, которые можно сохранить в файл формата TXT или CSV (Excel).
Контекстное меню: Контекстное меню найденного файла определяет наши возможности воспользоваться результатом поиска. Файл можно Запустить, Копировать, Удалить или просмотреть свойства. Можно просмотреть Отчет (Список найденных файлов) или сохранить его в файл.
Можно использовать новый инструмент, который носит название поиск «В найденном», который значительно убыстряет поиск и открывает новые возможности постепенного уточнения запроса без повторного сканирования всей зоны поиска. Этот режим запускается кнопкой «В найденном».
Обратим внимание на кнопку «Go back», Эта кнопка позволяет вернуться в предыдущее состояние с результатом по начальному запросу, изменить запрос и вновь «Искать в найденном». И так — пока не будет найден нужный документ. Все это — исключительно важная и полезная особенность этой программы. Часто, начиная поиск, мы не можем достаточно точно сформулировать запрос и, только просмотрев несколько документов, получаем возможность сделать уточнение и возможность искать в найденном значительно экономит время.
Контекст ключевого слова: При наведении мышкой на файл всплывает контекст ключевой фразы (слова), который позволяет сделать предварительную оценку содержания данного документа не открывая его в полном объеме.
О программе: Здесь приведены сведения о программе и разработчике, а также о бесплатной регистрации данной копии программы File Finder.
Тестирование программы: Для примеров и сравнительного тестирования использовалась, как и при описании других программ данного раздела папка с журналами Internet Zone. Объем папки 139 мегабайт, количество файлов — 23975, формат файлов — HTML, JPG и GIF.
В этой папке искались последовательно текстовая строка «norton» и, затем, «norton utilites». Результат поиска сравнивался с результатами, полученными с помощью других поисковиков и, таким образом, я мог оценить работоспособность данной программы. Сразу отмечу, что данный поисковик по полноте поиска файлов показал результаты, аналогичные результатам авторитетного поисковика «Ищейка».
Кроме того, текстовый поиск проверялся в файлах формата EXE, PDF, DOC, CHM, MP3. Только в файлах формата CHM поиск не имел успеха, в остальных случаях ключевые слова были найдены полностью. Таким образом, программа File Finder работоспособна в очень широком диапазоне форматов файлов, содержащих текстовые фрагменты и вставки. Итак, определился лидер нашего обзора — доступный поисковик с универсальными возможностями и хорошими удобствами. Автор рекомендует свой поисковик в качестве альтернативы штатному поисковику Windows. Со своей стороны могу подтвердить, что данная программа по функциональным возможностям и удобству применения значительно превосходит штатное средство поиска Windows.
Страница с реквизитами бесплатной регистрации программы выглядит так:
Посетить эту страницу можно по ссылке: линк
Домашняя страница: http://www.sitex.com.ua/ru/si-Finder/index.htm
Ссылка для загрузки программы (280 Кбайт): линк
Заключение
Для поиска нужной информации в массе файлов и документов, накопившихся на жестком диске целесообразно применять специальную программу-поисковик. Если формат документов однообразный и достаточно простой (только TXT и HTML), то можно обойтись утилитой AVSearch. При разнообразии типов документов потребуется изощренная поисковая система Ищейка или ее украинский аналог DiskMeta.
File Finder — программа для текстового поиска документов на компьютере, работающая практически, со всеми форматами документов и с архивами ZIP и удобно реализующая поиск в найденном. Эта очень толковая утилита может быть полезной для всех пользователей, которым приходится заниматься поиском документов и файлов на собственном компьютере или в локальной сети.
Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Она используется для поиска файлов и папок через командную строку Linux.
Команда find — одна из самых мощных и широко применимых команд. При этом она крайне объёмная и насчитывает более 50 опций, в которых легко запутаться, особенно в сочетании с командами exec или xargs.
Если вы сисадмин или разработчик, избежать команды find
при работе с командной строкой не получится. Так что давайте научимся её не бояться и пользоваться её возможностями в полной мере.
Для этого разберём самые распространённые случаи практического применения команды find. Но для начала покажу вам синтаксис и принцип работы с командой.
Команда find в Linux
Общий синтаксис команды find выглядит так:
find [directory to search] [options] [expression]
Всё, что в квадратных скобках, указывать необязательно. А значит, выполнить команду find можно вообще без опций и параметров. Она выдаст список всех файлов и папок в текущем расположении. Мало полезного, да?
Так что давайте взглянем на параметры подробнее:
-
directory to search
(папка поиска) — это расположение, с которого вы хотите начать поиск. Поиск по умолчанию рекурсивный и начинается с текущего расположения. -
options
(опции) содержит указание типа поиска: по имени, типу файла, времени изменения и так далее — тут может быть более 50 вариантов. -
expression
(выражение) содержит поисковый запрос. Если вы ищете файл по имени, параметр expression должен содержать имя файла. Если ищете файлы с именем, соответствующим заданному шаблону, поисковое выражение — это шаблон.
Приведу простой пример:
find . -type f -name myfile
Такая команда выполнит поиск файла (именно файла, не папки) с именем myfile
в текущей папке и подпапках. Опция -type f
сужает поиск до файлов. Точка (.
) указывает на текущую папку.
Рассмотрим несколько примеров применения команды find.
Поиск файлов и папок по имени
Так выполняется поиск файлов и папок по имени:
find . -name SEARCH_NAME
Поскольку тип объекта не указан, команда выполняет поиск и файлов, и папок.
Пример ниже — поиск файлов и папок с именем «mystuff»:
abhishek@LHB:~/Examples$ find -name mystuff
./new/mystuff
./mystuff
Поиск только файлов или только папок
Если нужно искать только файлы, на помощь придёт опция type -f:
find . -type f -name SEARCH_NAME
Тип и имя можно указывать в любом порядке. Возьмём пример выше и ограничим круг поиска файлами:
abhishek@LHB:~/Examples$ find -type f -name mystuff
./mystuff
Если нужно найти папку, укажите тип type -d:
find . -type d -name SEARCH_NAME
Вот пример нашего поиска уже по папкам:
abhishek@LHB:~/Examples$ find -type d -name mystuff
./new/mystuff
Поиск без учёта регистра
Команда find по умолчанию учитывает регистр. Чтобы выполнить поиск по имени файла без учёта регистра, надо ввести опцию -iname
вместо -name
.
find . -type f -iname SEARCH_NAME
С поиском по папкам (type -d
) это тоже работает.
abhishek@LHB:~/Examples$ find -iname mystuff
./new/mystuff
./MyStuff
./mystuff
Скриншот последних трёх примеров:
Поиск файлов по расширению (важно)
Одно из самых популярных применений команды find — поиск файлов определённого типа, то есть по заданному расширению.
Скажем, вы хотите найти все файлы С++ в текущих папках. Файлы С++ имеют расширение .cpp, и вот как их можно найти:
find . -type f -name "*.cpp"
С такими опциями команда find найдёт только файлы (-type f
) с именами, оканчивающимися на .cpp
.
abhishek@LHB:~$ find . -type f -name "*.cpp"
./file.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream2/zstream_test.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream/test.cpp
./.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/contrib/iostream/zfstream.cpp
При работе с командой find всегда заключайте поисковое выражение в двойные кавычки.
С чем связана рекомендация заключать поисковый запрос в двойные или одинарные кавычки? Дело в том, что без кавычек оболочка будет работать с символом * как с джокером и выполнит подстановку.
Вот что будет, если ввести запрос без кавычек:
find . -type f -name *.cpp
Оболочка распознает подстановочный знак * и заменит его всеми файлами в текущей папке, чьи имена заканчиваются на .cpp.
Это сработает, если такой файл всего один, но если их несколько, оболочка пожалуется на некорректный синтаксис.
В нашем случае файл .cpp всего один, и после подстановки команда выглядит так: find . -type f -name file.cpp
. Она работает, поскольку file.cpp
— корректный поисковый запрос.
А вот файлов .txt в той же папке два, и когда команда расширяется до find . -type f -name another.txt new.txt
, выводится предупреждение, потому что поисковых запросов больше одного.
Именно поэтому сам поисковый запрос всегда следует заключать в двойные кавычки.
Поиск нескольких файлов с несколькими расширениями (или условием)
Команда, рассмотренная выше, нужна для поиска файлов по расширению. А что если нужно найти файлы с несколькими разными расширениями?
Вместо того чтобы прогонять команду find несколько раз, введите её один раз с опцией -o, которая работает как логическое условие «или»:
find . -type f -name "*.cpp" -o -name "*.txt"
Например:
abhishek@LHB:~/Examples$ find . -type f -name "*.txt" -o -name "*.cpp"
./new.txt
./file.cpp
./new/new.txt
./new/dir2/another.txt
./new/dir1/new.txt
./another.txt
Поиск файлов в заданной папке
Все приведённые примеры иллюстрируют поиск в текущей папке, потому что команда включает в себя точку (.
).
Чтобы выполнить поиск в заданной папке, не покидая текущего расположения, можно заменить точку абсолютным или относительным путём к нужной папке.
abhishek@LHB:~/Examples$ find ./new -name mystuff
./new/mystuff
Поиск файлов в нескольких папках
Если нужные вам файлы могут находиться в нескольких папках, можно выполнить поиск во всех этих расположениях за один раз. Просто укажите все пути к папкам при введении команды find:
find ./location1 /second/location -type f -name "pattern"
Поиск пустых файлов и папок
Опция -empty
позволяет использовать команду find для поиска пустых файлов и папок.
Найти таковые в текущей папке можно следующим образом:
find . -empty
Можно указать тип объектов, чтобы искать только файлы или только папки:
find . -empty -type f
Кроме того, можно в таком режиме искать файлы по имени:
find . -empty -type f -name "*.cpp"
Поиск крупных и мелких файлов (поиск по размеру файла)
Команда find поможет найти крупные или мелкие файлы, если выполнить поиск по размеру. Но это работает только для файлов, не для папок.
Используется опция -size
с аргументом +N для файлов размером более N и -N для файлов размером менее N.
А вот как можно найти файлы точного заданного размера (50 КБ):
find . -size 50k
Так выполняется поиск файлов размером более 1 ГБ в текущей папке:
find . -size +1G
А так — файлов, не превышающих 20 байт:
find . -size -20c
Для поиска файлов размером более 100 МБ, но менее 2ГБ, введите:
find . -size +100M -size -2G
Поиск по размеру тоже можно сочетать с поиском по имени файла. Таким образом, найти в корневом каталоге все файлы размером более 500 МБ с именем, оканчивающимся на .log, можно так:
find / -size +500M -name "*.log"
Для справки:
-
c
– байты -
k
– килобайты -
M
– мегабайты -
G
– гигабайты
Поиск недавно изменённых файлов (поиск по времени изменения или создания)
Вы ведь знакомы с параметрами mtime, atime и ctime?
- Mtime – время последнего изменения файла
- Ctime – время создания файла
- Atime – время последнего доступа к файлу
Вы не раз столкнётесь с ситуацией, когда нужен список всех недавно изменённых файлов. В таких случаях на помощь приходит поиск по времени изменения.
Найти все файлы, претерпевшие изменения за последние трое суток (3*24ч), можно так:
find . -type f -mtime -3
А все файлы, созданные пять и более дней назад, ищутся так:
find . -type f -ctime +5
Понимаю, что 24 часа — большой срок. Что если нужно выявить файлы, изменённые всего пару минут назад? Для этого предусмотрены опции mmin
, amin
и cmin
.
Так выглядит команда поиска всех файлов, изменённых за последние пять минут:
find . -type f -mmin -5
Можно не только указать имя файла, но и ограничить временной промежуток с двух сторон. Команда ниже выполнит поиск всех файлов .java, изменённых не ранее 30 и не позднее 20 минут назад.
find . -type f -mmin +20 -mmin -30 -name "*.java"
Поиск файлов с определёнными настройками доступа
Надеюсь, вы имеете представление о разрешениях файлов в Linux.
Команда find позволяет выполнить поиск файлов по разрешению и режиму доступа.
find -perm mode
Поищем в текущей папке, к примеру, все файлы с режимом доступа 777:
find . -perm 777
А так можно найти все файлы с правами на чтение и запись для всех типов пользователей (только точное совпадение; файлы с правами на выполнение для всех не отобразятся):
find . -perm a=r+w
Поиск файлов по владельцу
Можно также найти файлы, принадлежащие определённому пользователю.
Вот как обнаружить в текущей папке все файлы пользователя Джона:
find . -type f -user John
Эта опция сочетается с другими, будь то размер или время и имя файла:
find . -type f -user John -name "*.cpp"
Отключение рекурсивного поиска для поиска только в текущей папке
По умолчанию команда find выполняет поиск во всех подпапках текущего расположения. Если это не требуется, можно ограничить глубину поиска значением «1». Так вы ограничитесь поиском в текущей папке, не залезая в подпапки.
find . -maxdepth 1 -type f -name "*.txt"
Исключение папки из поиска
Если нет необходимости производить поиск в той или иной папке, можно исключить её с помощью опций path, prune и логического «или».
find . -path "./directory_exclude/*" -prune -o -name SEARCH_NAME
Будьте внимательны: путь к папке должен оканчиваться на *, затем идёт -prune
и только потом -o
.
Попросту говоря, при поиске с опцией prune папка, указанная с помощью path, игнорируется. Prune всегда сопровождается флагом -o
(логическое «или»), чтобы папки, которые не были исключены, просматривались на наличие искомого объекта.
Дальнейшая работа с результатами команды find: exec и xargs
Итак, мы изучили различные способы поиска файлов по заданным параметрам. Это хорошо. А теперь следующий шаг: рассмотрим, какие действия можно выполнять с результатами команды find.
Например, как найти файлы с именем, соответствующим определённому шаблону, и переименовать их за одно действие? Или выявить и удалить пустые файлы?
Вам уже известно, что в Linux можно использовать перенаправление ввода-вывода, чтобы объединить результаты одной команды с вводом другой. Но с результатами команды find это не сработает — по крайней мере, не напрямую.
Чтобы выполнить действия над результатом команды find, есть два варианта:
- Применить exec
- Применить xargs
Использование find и exec
Допустим, вам нужен подробный список (ls -l) файлов, найденных командой find. Вот как его получить:
find . -type f -name "*.txt" -exec ls -l {} +
Результат будет таким:
abhishek@LHB:~/Examples$ find . -type f -name "*.txt" -exec ls -l {} +
-rw-rw-r-- 1 abhishek abhishek 39 Oct 13 19:30 ./another.txt
-rw-rw-r-- 1 abhishek abhishek 35 Oct 13 15:36 ./new/dir1/new.txt
-rw-rw-r-- 1 abhishek abhishek 35 Oct 13 15:36 ./new/dir2/another.txt
-rw-rw-r-- 1 abhishek abhishek 35 Oct 13 18:51 ./new/mystuff/new.txt
-rwxrwxrwx 1 abhishek abhishek 35 Oct 13 15:37 ./new/new.txt
-rw-rw-r-- 1 abhishek abhishek 35 Oct 13 18:16 ./new.txt
Многие забывают ввести {} +
в конце команды exec. Но это необходимо — как и пробел между скобками {} и плюсом +.
Фигурные скобки ссылаются на результат выполнения команды find. Их содержимое может иметь следующий вид: {файл 1, файл 2, файл 3}. Символ +
используется как конец команды exec.
Есть ещё один вариант оформления exec:
find . -type f -name "*.txt" -exec ls -l {} ;
В данном случае плюс заменён на точку с запятой. Дополнительная косая черта означает, что точка с запятой не является специальным символом.
Преимущество сочетания {} +
заключается в меньшем количестве команд ( ls -l file1 file2 file3
), тогда как комбинация {} ;
запустит цепочку ls -l file1
, ls -l file2
и так далее.
Однако сочетание {} ;
даёт возможность использовать {}
несколько раз в одном и том же выражении exec. Так, приведённая ниже команда переименует все обнаруженные файлы с расширением .old.
find . -type f -name "*.txt" -exec mv {} {}.old ;
Использование команды xargs
Многие пользователи Linux сталкиваются с необходимостью перенаправления ввода-вывода довольно часто. Но команда exec с цепочкой символов {} +
кажется им слишком сложной.
И тут на помощь приходит xargs. Нужно просто перенаправить вывод команды find в команду xargs через конвейер.
find . -type f -name "*.txt" | xargs ls -l
Синтаксис куда проще, верно? К тому же команда xargs тоже весьма эффективна. Подробнее о ней — в статье по ссылке.
Сочетание команд find и grep
Теперь вы умеете совмещать команду find с xargs и exec, и пора перейти на следующий уровень — объединить find и grep.
Для сисадминов и разработчиков комбинация команд find и grep — одна из самых распространённых и вместе с тем самых полезных.
Команда find находит файлы с именем, соответствующим шаблону, а затем команда grep выполняет поиск по их содержимому.
Например, вам нужно найти все файлы .txt, в которых есть имя «Alice». Объединить команды find и grep можно так:
find . -type f -name "*.txt" -exec grep -i alice {} +
А можно с помощью xargs:
find . -type f -name "*.txt" | xargs grep -i alice
Конечно, пример элементарный, но если команда grep вам знакома, можете использовать её на своё усмотрение.
И это далеко не все возможности команды find…
Перечислить все опции и примеры использования команды find практически невозможно. Её возможностям нет границ, но если вы освоите её принципы, она окажется очень кстати во многих ситуациях. Решающий фактор — как сочетается логика действия разных опций и команд.
Надеюсь, моя подборка примеров использования find была для вас полезна. Если у вас есть вопросы или предложения, как сделать эту статью лучше, добро пожаловать в комментарии.
НЛО прилетело и оставило здесь промокоды для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
— 20% на выделенные серверы AMD Ryzen и Intel Core — HABRFIRSTDEDIC.
Доступно до 31 декабря 2021 г.