如何判断我的cygwin安装是32位还是64位?
如何判断我的cygwin安装是32位还是64位? 我不记得要下载哪个setup.exe。 而且我不想搞乱我的cygwin安装。
uname -m
如果是64位的话,应该在输出中说x86_64
,如果是32位的,应该说是i686
。
运行uname -m
。 如果你的cygwin安装是64位的,输出将是x86_64
。 如果是32位,你将会看到i386
, i486
, i586
或i686
。
其他的答案解决了OP的问题,但是如果你像我一样使用Cygwin的两种风格,那么知道你使用的不仅仅是运行setup.exe。 如果我知道我的脚本正在Cygwin上运行,我更喜欢
uname -m
因为它只提供“x86_64”或“i686”作为输出。 我可以像这样在一个“if”块中使用它:
if [ $(uname -m) == "x86_64" ]; then do something; fi
当然,你也可以在if语句中使用“uname -a”和“grep”。 这是个人喜好的问题。
NateT根据“uname –help”给出正确的命令来“打印机器硬件名称”:
uname -m
我得到“x86_64”或“i686”,但谁知道这些string是否会改变? 这是“uname -a”的整个输出。 WOW64告诉你它是64位Windows上的32位Cygwin。 在32位,你没有select,对吧? ; – )
$ uname -a CYGWIN_NT-6.1-WOW64 Pegasus 1.7.32(0.274/5/3) 2014-08-13 23:03 i686 Cygwin
更新:(感谢TheDrake。)具有讽刺意味的是,从2015年2月左右开始,string中的WOW64已经变成了WOW ,所以尽pipe检查WOW现在可能是安全的,但似乎“机器硬件名称”确实可能比“内核名称”。
Cygwin似乎根据该线程认真地向后兼容,但也要注意,在MSYS2下,您需要依靠“机器硬件名称”而不是“内核名称”:
$ uname -a MSYS_NT-6.1 Pegasus 2.5.0(0.295/5/3) 2016-03-15 11:29 x86_64 Msys