Как найти файл по его типу, если расширение изменено?
Дано: Запароленный zip или rar-архив с данными. Дабы его было сложнее найти, файл переименовывается во что-то типа gimn_zimbabve.mp3, и засовывается в какую-то дальнюю папку. Проходит пять лет.
Вспоминается, что файл где-то лежит, но «где — не помню, и как называется — хз».
Задача: Найти файл, зная лишь его приблизительный размер, и настоящий тип.
Вопрос: Какой тулзой этот можно сделать?
Нужна программа, которая может:
а) искать по нужному типу (но не расширению) файла
б) отобразить только те файлы, расширение которых отличается от их типа.
в) (желательно) настроиться по дате изменения/создания или размеру файла.
Пример вывода:
./.minecraft/bin/minecraft.jar: Zip archive data, at least v2.0 to extract
./w2.zip: Zip archive data, at least v2.0 to extract
./.dropbox-dist/setuptools-0.6c11-py2.5.egg: Zip archive data, at least v2.0 to extract
./1.tar: POSIX tar archive (GNU)
И в мыслях небыло издеваться. Просто я не юниксоид, не люблю командную строку, и никогда не копался в линуховых репозиториях. Всего лишь хотел _простую_ утилиту под виндовс — мне же предлагают юниксовые решения, которые я даже гибко настроить не смогу.
Если нужно найти конкретный файл — то имеет смысл написать утилитку самому, благо что это буквально 5 строчек.
zip-файл можно найти по сигнатуре PK в начале файла, а дальше — рекурсивно по папкам искать те, что не zip но с нужной сигнатурой.
Правда, вас неприятно удивит количество найденных файлов с расширением docx и прочих zip-контейнеров — они, как не странно, довольно часто встречаются.
Есть программка которая определяет тип файла не по расширению: filetype, но она довольно простовата и не умеет делать это рекурсивно. Для папки можно filetype -i d:\folder | findstr RAR
и она покажет все файлы rar даже если у них совершенно другое расширение. Что бы пройтись рекурсивно надо делать batch-файл который пропарсит рекурсивно папки и скормит комманде найденные файлы.
в тотале коммандере выбрать поиск файлов (alt+F7), содержащих текст. для zip-файлов указать «PK», а для rar — «RAR!». либо еще можно вместо обычных символов указать рег выражение, но, к сожалению, не могу сказать на вскидку, какое условие надо написать, чтобы файл начинался с тех символов (именно начинался). иначе будет слишком много файлов не тех.
+ с другими опциями поиграться…
Лучше искать по сигнатуре, поставить галочку hex и вперед.
Очень, очень медленный такой поиск :(
Неужели во всем мире не придумали утилиты по поиску файлов по ТИПУ, а не по расширению?
Медленный да, но для правильного определния типа файла с другим расширением надо прочитать сигнатуру. Посмотрите как устроен GNU file. Есть база сигнатур по которым он и сравнивает и выдает mime тип.
>> Неужели во всем мире не придумали утилиты по поиску файлов по ТИПУ, а не по расширению?
Я ж вам писал, придумали, только под юникс. Утилита называется «file», показывает тип по богатой базе сигнатур. В комбинации с командой find творит чудеса. Грузитесь с linux live cd, монтируйте том и ищите. Дело получаса от силы.
pentarh, ну под винду мне нужна прога. под винду.
И двд/сидирома в компе нету (года два назад он взорвался). и загрузку со флешки комп (четырехлетний) вроде не поддерживает (P5KR). И самое главное, чайник я. Мне красивое gui-решение хочется.
Не решен вопрос, как искать по первым байтам файла, а не перерывать его целиком.
С таким успехом можно и встроенным виндовым «поиском файлов по содержанию» пользоваться.