我应该如何找到系统上的所有 32 位程序?我正在运行 64 位操作系统。
(可能有一些,但我忘记了)
答案1
这有点粗糙,但应该可以解决问题
find / -mount -type f -perm /111 -exec sh -c 'objdump -f {} | grep -q elf32 && echo {}' \;
-mount
让我们保留在/
文件系统上-type f
仅限于文件-perm /111
将其限制为具有可执行位的文件- 然后我们
objdump -f
对文件和echo
文件名(如果objdump
包含)运行elf32
前 3 个过滤器只是为了让我们稍微缩小结果范围,而不是objdump
对每件事都运行。
答案2
这将需要永远:
find /|parallel -n100 file {}|grep "ELF 32.*executable"
但它应该有效。您需要确保您已经GNU parallel
安装