Linux识别文件类型的几种方法

对于第一次使用 Linux 命令行的用户,可能真的搞不清楚哪个是文件,哪个是目录,究其原因是很难直接通过名字看出来目录和文件的区别。

虽然从名称上不容易分辨,但是可以从颜色上进行区分。一般情况下,Linux 用蓝色代表目录,其他颜色则表示是文件。不仅如此,Linux 中还可以用不同的颜色来区分不同种类的文件,例如绿色代表可执行文件、红色代表压缩文件、浅绿色代表链接文件、白色代表其他文件、黄色代表设备文件等。

例如:

《Linux识别文件类型的几种方法》

ls -l 命令

可以查看当前目录下所有文件和目录各自的属性。

《Linux识别文件类型的几种方法》

上图 显示的执行结构中,每行代表一个文件或目录,其中第一个字符表示的就是文件的类型,其可能的取值以及表示的文件类型,如下表 所示。

表 不同字符对应的文件类型

第一个字符文件类型
普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件,例如键盘、鼠标等。
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

file命令查看文件类型

Linux 的世界里,file 就是这样一面魔镜,它可以看到每个文件的内心。file 命令可以识别出文件的类型和编码格式,这是其他命令所做不到的。我们直接用 file 这面魔镜来看看文件的“内心”。

#不加任何选项, 直接查看poetry文件
[roc@roclinux ~]$ file poetry.txt
poetry.txt: ASCII text

使用不带任何选项的 file 命令,即可查看指定文件的类型信息。在上面的例子中可以看出 poetry.txt 的文件类型为 text,编码格式为 ASCII。

#使用-b选项来查看poetry文件
[roc@roclinux ~]$ file -b poetry.txt
ASCII text

上面的例子中,我们使用了-b选项,可以使 file 命令的输出不出现文件名,只显示文件格式以及编码。

#使用-i选项来查看poetry文件
[roc@roclinux ~]$ file -i poetry.txt
poetry.txt: text/plain; charset=us-ascii

上面的例子中,我们使用了-i选项,可以输出文件的 MIME 类型字符串。

小科普,MIME 类型,即 Multipurpose Internet Mail Extensions,称为多用途互联网邮件扩展类型,用来标识和记录文件的打开方式,一些常见的类型包括:

  • text/plain:普通文本。
  • text/html:HTML文本。
  • application/pdf:PDF文档。
  • application/msword:Word文档。
  • image/png:PNG图片。
  • mage/jpeg:JPEG图片。
  • application/x-tar:TAR文件。
  • application/x-gzip:GZIP文件。

设置输出分隔符

从上面的例子可以看出,file 命令的输出格式是:

文件名:文件类型和编码格式

如果希望将中间的分隔符由冒号(:)改成其他符号,则可以使用-F选项来实现。
[roc@roclinux ~]$ file poetry.txt
poetry.txt: ASCII text
 
[roc@roclinux ~]$ file -F "=>" poetry.txt
poetry.txt=> ASCII text

有些同学会问,这样的功能有何意义呢?在一些自动化文件分析的脚本中,开发者为了避免分隔符和普通字符重复而造成误解析的情况,通常是会手工调整间隔符的。

查看软链接文件

file 命令能查看所有文件的类型信息,那么问题来了,对于一个软链接文件,file 命令是返回软链接文件本身的类型信息,还是返回软链接所指向的目标文件的类型信息呢?让我们通过试验得出结论吧:

#新建一个软链接文件
[roc@roclinux ~]$ ln -s poetry.txt poetry_s.txt

 
#通过file命令查看软链接文件
[roc@roclinux ~]$ file poetry_s.txt
poetry_s.txt: symbolic link to `poetry.txt'
 
#使用-L选项来查看软链接文件
[roc@roclinux ~]$ file -L poetry_s.txt
poetry_s.txt: ASCII text

试验是找到真相的最好方法。通过上面的示例,我们已经很清楚地看到了:

  • 如果通过 file 命令直接查看软链接文件,则查看的就是软链接文件本身的信息。
  • 如果使用-L选项来查看软链接文件,则查看的是软链接指向的目标文件的信息。
    原文作者:lanhuazui10
    原文地址: https://blog.csdn.net/lanhuazui10/article/details/120028751
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞