Linux下通过神器file查看文件格式信息

不同于windows下的文件都有格式后缀名,windows下文本文件和可执行文件通常都没有后缀名,那么我们怎么知道这到底是个文本文件,还是一个可执行文件呢?

这个问题每个人可能有不同的方法。

方法一 : 看权限

通常文本文件是没有可执行权限的

image-20200109151546023

但这个方法并不靠谱,没有权限的不一定是文本,也可能是没有权限的可执行文件实体。

而有权限的也不一定是可执行文件,毕竟有部分同学喜欢简单粗暴的大招(严重不推荐) chmod 777 -R test

手段这样厉害的同学,是轻易不能招…的:

image-20200109151941158

这个方法基本就靠运气蒙,不实用。

方法二 : cat 看输出

这个方法看是否是文本文件,相对靠谱了一点点。

查看 ldd 这个文件,就可以看出来它是个文本文件:

image-20200109152637997

查看 which 这个命令的执行文件,就可以看出来输出不那么正常了:

image-20200109152915141

这样,大体上可以在一定程度上判断是否是个文本文件还是可执行文件。

方法三 (推荐): file

以上第二种方式虽然大体上可以对一个文件的类型作出判断,但所提供的信息不够严谨和详细。

所以,拿来我们的神器 file ,它可以给我们提供一个文件的详细类型信息。

用法:file [OPTION...] [FILE...]

  • file $(which ldd)

image-20200109153600676

file 明确的告诉了我们 , ldd 是一个脚本,并且是可执行的,ASCII 编码的 text 文件,详细准确。

  • file $(which git)

image-20200109153743553

file 对可执行文件,还明确描述了其属于 64-bit 的程序,运行在 x86-64 的 Linux 平台上的动态链接库,非常的详细。

  • file $(which node)

image-20200109153942864

足够强大,描述精准详细!

文章作者: 普通程序员
文章链接: https://programmerauthor.github.io/2020/01/09/linux-tool-file/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 普通程序员