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