Answers:
识别您仍在使用哪些32位应用程序的一种方法是使用“关于本机”下的“系统信息”选项。确切步骤因您所运行的macOS版本而异,但以下是适合您情况的主要步骤:
64-Bit (Intel)
单击此列标题”,以按应用程序是否为64位对它们进行排序(即,针对每个应用程序列出的是或否)。请参考下图作为示例:
注意:在上图中,我没有对最后一列进行排序,因此您可以看到同时列出了“是”和“否”的条目。因此,在上面的示例中,您将看到iMovie v10.1.6是64位应用程序,而iMovie 9.0.9不是64位。
编辑-如果上述步骤导致错误
我看到有报告说,少数用户在等待列表填充时收到“插件在收集此信息时没有足够快的响应”错误消息。
如果发生这种情况,请退出系统信息应用程序(或旧版本的macOS中的System Profiler应用程序)并重新启动,但是这次跳过步骤1至4,直接转到您的Applications / Utilities文件夹并打开系统信息应用程序(或系统Profiler应用)直接从那里。打开后,请按照上述步骤5至8进行操作。
在Finder中点击cmdF以获取搜索窗口。
击中+按钮,添加第二个标准“ 可执行的体系结构 ”,“ 不是 ”,“ x86_64的 ”
您将获得所有仅i386(即32位)应用程序的列表。
在终端中,这可以通过以下方式完成:
mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
~/Library/Application Support
,例如Steam游戏。另一个解决方案可以。您知道是否有任何方法可以修改搜索以包括该内容吗?
到目前为止,据我所知,其他答案将在元数据索引中列出32位macOS应用程序(可能还有一些32位二进制文件)。如果要列出系统上每个仅32位的可执行二进制文件,请立即执行以下操作:
find / -type f -perm +111 -exec file -p {} \; -exec head -c 1 /dev/zero \; | xargs -0 -n 1 sh -c 'echo "$@" | head -n 1' -- | grep -v x86_64 | grep -E Mach-O.+i386
如果您安装了GNU findutils,则可能会大大简化。这里有些复杂性是为了克服macOS中包含的BSD findutils的限制。
这行一行的Terminal命令会将应用程序列表收集到桌面上的文本文件中。它会在查询中每次出现“(Intel):No”时获取前6行,之后获取2行。但是,它不会深入研究已编译的64位应用程序的32位支持二进制文件或库。该列表范围更广,即使是问题,我也找不到任何可以解决更深层次问题的资源。
system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt
当您只需要检查一个应用程序时:
file myapplication
例如,我的光线追踪器rt
:
==> file rt
rt: Mach-O 64-bit executable x86_64
==>
该file
命令基本上会查看多种文件并尝试识别它们。对于OSX可执行文件,您几乎总是会看到其中的一个或多个:i386,x86_64和ppc分别是32位intel / amd架构,64位intel / amd架构和功能强大的PC架构(这些都已经很老了现在。)因此,您实际上只需要关心i386(32位应用程序)和x86_64(64位应用程序)。
对于打包的应用程序,应该右键单击并显示打包内容。在大多数应用中,contents → macOS
可以找到一个可执行文件。其路径应用作的参数file
。
file /Applications/BitTorrent.app/Contents/MacOS/BitTorrent
,我明白了Mach-O executable i386
。这意味着什么 ?
i386
。请您添加这样的引用吗?
file
命令基本上会查看多种文件并尝试识别它们。对于OSX可执行文件,你几乎总是看到一个或更多的这些:i386
,x86_64
,和ppc
它们分别是32位Intel / AMD架构,64位Intel / AMD架构和功率的PC架构(后者是相当老了。 )因此,您实际上只需要关心i386(32位应用程序)和x86_64(64位应用程序。)它们唯一重要的原因是因为Apple放弃了对32位应用程序的支持。