Способ идентификации текстовых файлов в качестве сценариев - PullRequest
1 голос
/ 22 января 2012

Я создаю фильтр для файлов, поступающих на компьютер Unix. Я только хочу разрешить проход текстовым файлам, не похожим на сценарии.

Для проверки простого текста я проверяю исполняемый бит файла и использую тест -T-файла из perl. (Я понимаю, что это не 100%, но он будет ловить двоичные файлы, которые я больше всего хочу избежать). Я думаю, что этого будет достаточно, но любые предложения приветствуются.

Мой главный вопрос заключается в распознавании, когда простой текстовый файл является скриптом. Каждый сценарий, который я когда-либо писал, начинался со строки #!, поэтому моя первая мысль - прочитать в первой строке файла и заблокировать любой, содержащий его. Существуют ли обычные текстовые файлы, не относящиеся к сценариям, которые начинаются со строки #!, которые я отмечу как ложно-положительные? Существуют ли лучшие / дополнительные методы идентификации скрипта?

1 Ответ

2 голосов
/ 22 января 2012

Для этого и нужна команда file (см. Wikipedia ).Он распознает гораздо больше, чем просто взрыва (#!), и может сказать вам, что это за сценарий, если таковой имеется.

...