
file
ELFveとスクリプトをできるだけ早く区別する方法は?
これ以上の詳細は必要ありません。非常に低い周波数、スクリプト(/一般テキスト)、またはその他/エラー。
答え1
ELFとスクリプトの間にある場合は、おそらくfile
まったく必要ありません。使用bash
:
IFS= LC_ALL=C read -rn4 -d '' x < file
case $x in
($'\x7fELF') echo ELF;;
("#!"*) echo script;;
(*) echo other;;
esac
((NUL文字を区切り文字として使用)は、そうでなければ入力のNULバイトが無視されること-d ''
を説明するためのものです。bash
read
また見なさい:
答え2
カスタム作成マジック(5)必要なテスト用のファイルのみを含めてください。
在庫elf
テストは以下から入手できます。https://github.com/file/file/blob/master/magic/Magdir/elf、それからさらに切り取ります。text
組み込みのため、含める必要はありません。
毎回解析するのを防ぐには、独自のディレクトリに入れて次のようにコンパイルしてくださいmgc
。
file -C -m dir
すると出力されますdir.mgc
。 (-m dir/
代わりに出力するように指定し.mgc
てください。)これは後続の実行で使用されます。
file -m dir
答え3
次のテストを除くと、作業をスピードアップできることがわかりました。
encoding tokens cdf compress elf tar
(を含むテストは除外されます-e $test_name
。)
ascii
テストしてみてくださいsoft
。