Что эквивалентно команде Linux File для Windows?

16

Выполнение команды:

file run.sh

Дает мне:

run.sh: Bourne shell script text executable

в линуксе Есть ли в Windows эквивалентная команда?

AabinGunz
источник
5
Это форум QA. Не гугл. Вы должны попробовать поискать, прежде чем просто спрашивать людей здесь. - gnuwin32.sourceforge.net/packages/file.htm
Нуфал Ибрагим
10
@Noufal: нет, вы не должны. Q & A означает, что вы задаете вопросы. Это вопрос. Вопросы и ответы не имеют ничего общего с поиском в первую очередь.
Коди Грей,
2
Коди: Возможно. Я все еще думаю, что некоторые исследования перед тем, как задавать вопрос, это хорошая вещь.
Нуфал Ибрагим
6
Извините люди, но я попробовал Google, а затем я задал этот вопрос здесь.
1
Команда fileне является частью ядра Linux, скажем так. Это пакет, который установлен в большинстве дистрибутивов по умолчанию. В Windows такого нет. Большинство решений принимаются на основе расширений файлов, а не содержимого.
Нуфал Ибрагим

Ответы:

4

Там, вероятно, нет в вашей системе по умолчанию. Вы можете установить набор инструментов Cygwin (порты команд GNU для Win32 API). Был также MKS Toolkit и еще один, имя которого ускользает от меня в данный момент. MKS был коммерческим, Cygwin, конечно, был GNU / GPL, а другой победитель был в конечном итоге переименован (из OpenNT?), А затем приобретен Microsoft и включен в какой-то набор MSDN для Win2K или Server 2003 или что-то в этом роде.

Для любого из них вы просто запускаете команду file для ваших целевых файлов так же, как в UNIX. Возможно, вам придется запускать их под включенной UNIX-подобной оболочкой (bash, для Cygwin, ksh или MKS Toolkit, и кто знает, что для другого).

Джим Деннис
источник
Привет, спасибо за информацию, я тоже слышал о MKS и работал над Cygwin, но опять же мне было интересно, есть ли инструмент, который поставляется по умолчанию в Windows. В любом случае спасибо :)
Я загрузил cygwin, а затем смог скопировать каталог установки cygwin в систему, в которой я хотел запустить команду file, и затем смог вызвать команду file.exe в скопированном каталоге cygwin без «установки» cygwin в целевой системе.
Крис Магнусон
7

Как уже говорили другие, в Windows нет ничего встроенного. Если вы хотите альтернативу fileпортам, проверьте TrID . Разработчик также делает анализатор доступным как для Win32 DLL, так и для сборки .NET .

afrazier
источник
1
очень хорошо. есть даже онлайн-сканер, на который можно загружать небольшие файлы. mark0.net/onlinetrid.aspx
user26398
3

1. Вы можете скачать и установить git для Windows

Имеет встроенную команду file в git-bash.exe

2. Вы можете использовать Windows build file

Ссылка здесь https://github.com/nscaife/file-windows/releases

Или здесь https://github.com/julian-r/file-windows/releases

3. Попробуйте https://github.com/joeky888/fil

Это командный инструмент, написанный на Go.

Аналогично fileкоманде, но кроссплатформенный без какой-либо зависимости.

Использование:

file <SOME_FILE>
Зеленая птица
источник
1

Не встроенный; Windows использует расширения файлов для определения типа файла. Я почти уверен, что fileв Cygwin есть порт .


источник
@nickgrim:, @ skwllsp: Мне нужно что-то, что приходит по умолчанию в каждой системе Windows.
@nickgrim: Это может быть так, потому что windows использует расширения файлов для определения типа файла, поэтому нет встроенной команды it. Если мне удастся найти решение, я опубликую его здесь. Спасибо всем за ваши усилия :)
1

Если вам нужна команда file без установки всего Cygwin, вы можете получить копию из проекта GnuWin. Это более старая сборка, но все еще полезная:

http://gnuwin32.sourceforge.net/packages/file.htm

Эдвард
источник
0

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


источник
0

На Windows 10 теперь вы можете установить Bash . После установки у вас будет доступ к той же команде File, которую использует Ubuntu. Это может быть немного излишне делать все это только для одной команды, но я считаю это весьма полезным.

Gary
источник
0

Попробуйте получить копию cmder.exe, которую вы можете запустить без установки, и в него встроены команды nix. Вы также можете добавить любые дополнительные команды, которые вы можете загрузить, в путь при запуске.

Индиго
источник