linux环境判断文件是否为二进制文件

请问在linux环境下,通过什么命令能判断文件是否为二进制文件?请知道的告诉下谢谢,不要复制粘贴网上的答案
我通过file + 文件名的方法,显示如下:
[root@localhost test]# file /usr/bin/vim
/usr/bin/vim: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x2e8e7e1158d07637a7782a6d515c829711d8ade2, stripped
有没有什么命令或者方法,能简单的告诉我是或者不是?请知道的告诉下

vim 直接查看文件内容呗,二进制文件应该只能显示0和1两个数字吧。大部分文件都不会用二进制的,系统的二进制文件都通过系统编译器被编译成其它语言了

文本文件其实也是二进制文件的一种(特例),所有的文件都是二进制的。
你说的二进制文件应该是指包含了非人类可读文本的文件。
非人类可读文本又分为2种,一种是包含英文ascii字母、数字、标点之外的别的字符,一种是包含了所用的编码中表示某种当地语言(比如中文)之外的字符。

简化起见,假设是英文,可以遍历文件,判断是否包含特殊字符即可。

用stat函数就可以的。

shell中有一个file命令,可以判定一个文件的文件类型是什么,具体用法你可以百度一下。因为linux中一切皆文件,后缀往往也只是一个易读的标识,所以用file命令可以帮你分辨出来这个文件是一个什么文件,你可以看下是不是能解决你的问题。

支持shell配色终端访问二进制单文件与普通单文件颜色是有区别的,如果不确定file或者readelf一下。