识别Mac电脑上文件的命令行技巧

668 查看

有时你会因一个文件而迷惑,这个文件可能是在你的文件夹中的一个未知类型的文件,它可能是你的父母或者客户给你的。不幸的是,你不知道它到底是一种什么样的文件。在Mac上文件是不带有拓展名的,所以可能并没有足够的信息来告诉你“Flongnozzle-2012”到底包含了什么内容。然而终端(Terminal)可以为你提供一些便利,你可以使用一些内嵌的命令行工具来帮助你鉴别文件。

识别文件内容

对于这种情况,file命令恰好是我所需要的。file指令可以检测一个文件的内容然后试图去弄清楚它是什么。

当然,这其实是Objective-C文件,不过终端已经非常接近了,终端将其鉴别为一个内有代码的文件。“等等,MarkD(注:作者),它仅仅看下文件的拓展名不就行了吗?”file命令也支持这种情况,不过拓展名并不是必须的:

没有文件拓展名,不过我们依然鉴别出了这个文件是什么。将file命令指向一个可能包含可执行代码的文件或目录,它会告诉你其内在的结构:

你可能会说,如果你有一个体积庞大的二进制文件(例如,原生的App)怎么办,下面是办法:

将file指向一个图片文件来看看图片的一些信息:

哦等等,这里有一个终端的使用小技巧:将文件的图标从Finder中拖入终端窗口,这就相当于将你拖动的这个文件或文件夹的完整路径粘贴进去了。

进一步探索

有时file也不会让你满意,或者你可能想要知道关于文件的更多信息。一般来说,你总是可以通过QuickLook在Finder中浏览一下文件,如果这样不起作用,那么你可以使用hexdump命令来看看出文件的字节数,也可以传入参数-c来看看翻译成ASCII码之后的信息。

例如,回到我们之前的那个图片文件: