不同于windows下的文件都有格式后缀名,windows下文本文件和可执行文件通常都没有后缀名,那么我们怎么知道这到底是个文本文件,还是一个可执行文件呢?
这个问题每个人可能有不同的方法。
方法一 : 看权限
通常文本文件是没有可执行权限的
但这个方法并不靠谱,没有权限的不一定是文本,也可能是没有权限的可执行文件实体。
而有权限的也不一定是可执行文件,毕竟有部分同学喜欢简单粗暴的大招(严重不推荐) chmod 777 -R test
手段这样厉害的同学,是轻易不能招…的:
这个方法基本就靠运气蒙,不实用。
方法二 : cat 看输出
这个方法看是否是文本文件,相对靠谱了一点点。
查看 ldd 这个文件,就可以看出来它是个文本文件:
查看 which 这个命令的执行文件,就可以看出来输出不那么正常了:
这样,大体上可以在一定程度上判断是否是个文本文件还是可执行文件。
方法三 (推荐): file
以上第二种方式虽然大体上可以对一个文件的类型作出判断,但所提供的信息不够严谨和详细。
所以,拿来我们的神器 file ,它可以给我们提供一个文件的详细类型信息。
用法:file [OPTION...] [FILE...]
file $(which ldd)
file 明确的告诉了我们 , ldd 是一个脚本,并且是可执行的,ASCII 编码的 text 文件,详细准确。
file $(which git)
file 对可执行文件,还明确描述了其属于 64-bit
的程序,运行在 x86-64
的 Linux 平台上的动态链接库,非常的详细。
file $(which node)
足够强大,描述精准详细!