在计算机系统中,文件类型是一个非常重要的概念。文件类型决定了系统怎么处理它,包括文件的打开方式、编辑方式、备份方式等等。在Linux系统中,文件类型存储在文件的“magic number”中,是一个数字或者字符串。为了能够快速准确地检测文件类型,在Linux中提供了filetype命令,该命令可以检测文件的类型,并根据文件类型执行相应的操作。
一、命令语法
filetype命令的语法非常简单,只需要在终端输入类似于如下命令即可:
filetype [文件名]
其中,[文件名]是想要检测类型的文件名。如果没有指定文件名,则该命令将等待从标准输入中读取数据。
二、命令功能
filetype命令可以检测文件类型,包括文件是否为文本文件、数据文件等等。具体来说,它可以检测并返回以下文件类型:
1. ASCII文本:仅包含ASCII字符的文本文件。
2. ASCII文本,尾随CR:ASCII文本文件,每行末尾包含回车符。
3. ASCII文本,尾随CRLF:ASCII文本文件,每行末尾包含回车符和换行符。
4. 列表:二进制文件,带有可打印字符。
5. ELF 32-bit LSB可执行文件:32位可执行文件。
6. ELF 64-bit LSB可执行文件:64位可执行文件。
7. 镜像:二进制文件,所有字节都是0或255。
8. JPEG图片:JPEG格式图片。
9. GIF图片:GIF格式图片。
10. PNG图片:PNG格式图片。
11. SQLite 3.x数据库:SQLite 3.x格式数据库。
12. TCPdump捕获文件:TCPdump程序捕获的网络数据包文件。
13. ZIP文件:ZIP格式压缩文件。
14. gzip压缩文件:gzip格式压缩文件。
15. ASCII文本可执行文件:文本文件,可以被shell直接执行。
16. ELF 32-bit LSB可共享对象:32位可共享库。
17. ELF 64-bit LSB可共享对象:64位可共享库。
18. ELF 32-bit MSB可执行文件:32位大端模式可执行文件。
19. ELF 64-bit MSB可执行文件:64位大端模式可执行文件。
20. ASCII DOC格式:ASCII格式的DOC文件。
21. HTML文件:HTML格式文件。
22. ELF 32-bit LSB目标:32位目标文件。
23. ELF 64-bit LSB目标:64位目标文件。
24. Unicode文本:Unicode编码的文本文件。
25. UTF-8 Unicode文本:UTF-8编码的文本文件。
三、命令使用
1. 检测文件类型
输入以下命令,在终端中查看文件I Am a File的类型:
```
$ filetype I\ Am\ a\ File
```
如下所示:
```
I Am a File: ASCII text
```
这里,filetype命令检测到I Am a File文件是ASCII文本文件。
2. 检测文件类型的实际操作
filetype命令检测的文件类型可以用来执行特定操作,如添加执行权限:
```
$ chmod +x my_script.sh
```
如果想看一下该文件的类型,可以输入以下命令:
```
$ filetype my_script.sh
```
如果该文件是ASCII文本可执行文件,则可以执行以下操作:
```
$ ./my_script.sh
```
四、命令扩展
filetype命令可以通过在~/.magic文件中配置自定义magic模板来支持更多的文件类型检测。如果想自定义magic模板,请参考网上相关的教程。
扫码咨询 领取资料