Идентифицировать файл с «файлом» в сценарии оболочки?

374
camperdave

В настоящее время я пишу сценарий оболочки, который должен иметь возможность идентифицировать фактический тип файлов (не их расширения) с помощью утилиты unix "file". Однако этот инструмент выводит читаемый человеком текст, который может быть несколько сложным для анализа. Прежде чем я напишу что-то, что просто соответствует конкретным подстрокам, найденным в его выводе, есть ли лучший способ решить эту проблему?

1
Для идентификации набора символов, используемого в файлах, должно быть достаточно `file`, например, один из способов разобрать набор символов:` raw = $ (file -i $ 1); cДль параметр = $ `. 12 лет назад 0

1 ответ на вопрос

2
Mattias Ahnberg

Использование --mime-typeаргумента для получения fileMIME-типа, который легче анализировать.

$ file --mime-type /etc/passwd /etc/passwd: text/plain 

-iВариант дает немного больше информации (тип кодирования), если это необходимо:

$ file -i /etc/passwd /etc/passwd: text/plain; charset=us-ascii