快速区分 ELFve 和脚本

快速区分 ELFve 和脚本

如何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

-d ''(使用 NUL 字符作为分隔符)是为了解决这样一个事实,否则bash只会read忽略输入中的 NUL 字节)。

也可以看看:

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

相关内容