64비트 운영 체제를 실행하고 시스템에서 모든 32비트 프로그램을 찾습니다.

64비트 운영 체제를 실행하고 시스템에서 모든 32비트 프로그램을 찾습니다.

내 시스템에서 모든 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설치 되었는지 확인해야 합니다.

관련 정보