gpt4 book ai didi

macos - 在 Snow Leopard 中查找所有 PPC 库、二进制文件和应用程序

转载 作者:行者123 更新时间:2023-12-04 16:41:49 24 4
gpt4 key购买 nike

您是否有任何关于如何编写一个脚本来搜索我的系统以查找应用程序、库(即/usr/local/lib 和/usr/local)和仅限 PPC 的二进制文件的指针?

我将我的系统从 PPC Mac 升级到运行 Leopard 10.5 的 Intel Mac。然后我升级到了 Rosetta 不附带的 Snow Leopard 10.6。所以我现在才意识到我系统上遗留的所有旧的 PPC 东西!

最佳答案

file命令可以检测文件中可用的二进制类型。

file -b /usr/bin/atrm
setuid Mach-O universal binary with 3 architectures
/usr/bin/atrm (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/atrm (for architecture i386): Mach-O executable i386
/usr/bin/atrm (for architecture ppc7400): Mach-O executable ppc

因此,这只是适当使用查找和过滤的问题。这样的事情应该可以找到系统上所有具有 PPC 子部分的二进制文件。
find / -perm -u+x ! -type d -exec file {} \; | grep ppc | awk '{print $1}'

PPC 只是有点困难。为此,您需要执行三个命令在/tmp 中创建 2 个文件,第一个包含 PPC 文件列表,第二个包含 32 位或 64 位 x86 文件列表。方便地,'ppc' 匹配 ppc 和 ppc64。
find / -perm -u+x ! -type d -exec file {} \; | grep ppc | awk '{print $1}' > /tmp/ppc
find / -perm -u+x ! -type d -exec file {} \; | grep i386 | awk '{print $1}' > /tmp/x86
find / -perm -u+x ! -type d -exec file {} \; | grep x86_64 | awk '{print $1}' >> /tmp/x86

然后,稍微排序/uniq(只是对路径进行排序并确保每个二进制文件只列出一次):
cat /tmp/x86 | sort | uniq > /tmp/x86.filtered
cat /tmp/ppc | sort | uniq > /tmp/ppc.filtered

然后,使用 diff(以及更多处理)来喷出仅 ppc 的文件列表:
diff /tmp/ppc.filtered /tmp/x86.filtered | grep -e '<' | awk '{print $2}' | perl -p -e 's/:$//'

最终结果应该是一个只包含 ppc 可执行 mach-o 部分的文件列表。我建议在做任何事情之前验证列表。

一些注意事项:

以上所有操作都在终端中完成。

这只是一个黑客;它在我的系统上运行得很好,我很高兴你问这个问题,因为我想知道同样的事情。但这只是一个黑客。

关于macos - 在 Snow Leopard 中查找所有 PPC 库、二进制文件和应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com