Cygwin file foo.exe
идентифицирует содержимое файла на основе их магических чисел / метаданных формата файла.(Не их имена файлов).Предположительно также доступен или устанавливается из источника в MinGW и, вероятно, поставляется с любым дистрибутивом для Подсистемы Windows MS для Linux , WSL.
Это то же самое открытоеисходная реализация команды POSIX file
, которую использует большинство BSD и всех дистрибутивов Linux.Восходящий источник - https://www.darwinsys.com/file/
https://en.wikipedia.org/wiki/File_(command) показывает пример вывода.И у меня есть пара исполняемых файлов Windows на моем рабочем столе Linux:
peter@volta:~/.wine/drive_c$ file Program\ Files/Internet\ Explorer/iexplore.exe
..../iexplore.exe: PE32+ executable (GUI) x86-64, for MS Windows
peter@volta:~/.wine/drive_c$ file Program\ Files\ \(x86\)/The\ Master\ Genealogist\ v9/tmg9.exe
..../tmg9.exe: PE32 executable (GUI) Intel 80386, for MS Windows
IDK, если это ответ best , если вы не регулярно используете оболочку командной строки (как яна моем рабочем столе Linux).
file
работает практически для любого типа файла, например, ZIP, JPG, mp4, mkv, а для широко используемых форматов файлов он даже получит некоторые дополнительные метаданныекак разрешение изображения JPG.(Он не основан на имени файла, он открывает файл для просмотра метаданных. Обычно первые 4 байта или около того являются «магическим числом», указывающим, какой тип файла.)
Для форматов простого текста этоИногда можно использовать эвристику, чтобы отличить HTML от обычного текста, и распознать UTF-8 против UTF-16 против ISO-8851 против простого ASCII и DOS против концов строк Unix и т. д. Довольно хорошая программа, чтобы иметь вокруг, а нетолько для исполняемых файлов.