ELFveとスクリプトをすばやく区別

ELFveとスクリプトをすばやく区別

fileELFveとスクリプトをできるだけ早く区別する方法は?

これ以上の詳細は必要ありません。非常に低い周波数スクリプト/一般テキスト)、またはその他/エラー

答え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 ''を説明するためのものです。bashread

また見なさい:

答え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

関連情報