在类 UNIX 系统中,文件名可能与其实际类型完全不同。在某些情况下,它们甚至没有有效的扩展名。因此,它会使数据管理变得更加复杂。为了方便地组织信息,Linux 提供了一个名为文件命令的程序。它主要用于确定文件类型——美国信息交换标准代码 (ASCII) 文本或多用途 Internet 邮件扩展 (MIME) 格式。在本教程中,您将了解使用该程序的基础知识以及它如何增强您的服务器管理和 Linux 操作技能。
了解 Linux 文件命令语法
要在VPS 主机上使用 Linux 文件命令,您必须将它与 SSH 客户端(例如 PuTTY 或终端)连接。
在开始之前,我们先分析一下file命令的基本语法:
文件 [选项] [文件名]
- file – 指示 shell 执行文件命令。
- [options] – 修改命令的操作。
- [文件名] – 插入您要检查的文件名。
执行时,该命令不考虑文件扩展名。相反,它会运行三个测试来确定文件类型:
- 文件系统测试——检查 stat 系统调用的返回。该程序会检查它是空文件还是特殊文件类型。它还会查找与您使用的系统相关的已知格式(如果它们在系统头文件中指定)。
- 魔术测试——使用魔术数字,文件开头的一串短数字,来检查它是否是二进制可执行数据。如果是,程序将确定它的类型。运行此测试的必要信息可从已编译的魔术文件中的/etc/magic或/usr/share/misc/magic中获得。
- 语言测试——检查写入文件的字符集,例如 ASCII 文本或 UTF-8。它还会查找出现在前几行中的任何特殊序列。但是,此测试不如前两个测试准确,因此最后执行。
命令的输出使用标准格式显示文件类型。根据命令选项,它可能会提供其他信息,例如压缩文件中存储的数据、大小或版本。
在练习命令选项之前,使用 nano 编辑器创建一个名为test.txt的示例文本:
纳米测试.txt
命令行打开新文件后,写几行文本并按Ctrl + X和Y退出并保存更改。
输入Linux文件命令查看test.txt文件是否创建成功:
文件测试.txt
输出将显示创建了一个ASCII文本文件:
Linux 文件命令的使用方法
语法中的选项允许您将变量添加到 Linux 文件命令。以下是一些最常见的:
- -b或–brief – 获取文件类型的简短描述。
- file * – 列出当前工作目录中的所有文件类型。
- -i或–mime – 显示 MIME 文件类型。
- -s或–special-files – 读取特殊文件。
- -z或–uncompress –检查并显示压缩文件中的信息。
- -c 或 –checking-printout –检查魔法文件的解析版本。
- -m或–magic-file – 利用用户提供的替代魔法文件。
- -d – 使用标准格式显示内部调试信息。
- <regex range> – 获取特定范围内的文件类型。
- -0或–print0 – 在文件名末尾打印一个空字符。
- –help – 显示文件命令的帮助信息。它还列出了可接受的选项及其用法。
在以下部分中,我们将讨论如何使用这些选项中的每一个。
检查文件类型
在 Linux 中,虽然用户可以重命名他们的文件,但更新后的信息可能并不代表实际数据。要查找正确的文件类型,请输入:
文件文件名
例如,您将test.txt重命名为text.zip。要显示有效的文件类型,请输入:
文件正文.zip
输出将显示名称及其实际类型,一个 ASCII 文本文件:
要以简要模式查看格式,请在终端上使用-b选项,后跟文件名。例如:
文件 -b 文本.zip
输出将显示 不带名称的文件类型:
列出多个文件的文件类型
file 命令可以列出主目录中的每种文件类型。为此,输入文件并添加通配符 ( * ):
文件 *
该程序将显示所有文件和目录:
此外,文件命令可以显示特定目录中的每种文件类型。这是一般语法:
文件 [目录路径]/*
查找 MIME 文件类型
-i选项用于查看MIME 文件类型。它由两部分组成——类型和子类型。MIME 使用斜杠 (/) 将它们分开,中间没有空格。
这是一般语法:
file -i 文件名
例如,要查看test2.txt文件的 MIME 类型,请输入:
文件-i test2.txt
这是上面文件命令的输出:
该程序没有将文件格式声明为 ASCII 文本,而是将文件定义为text/plain和charset=us-ascii。
读取特殊文件类型
文件命令允许您通过添加-s选项来读取特殊文件,例如系统信息。
重要的!请记住,只有 root 用户才能使用 -s 选项运行文件命令。否则,您将收到一条无读取权限错误消息。
此选项仅将文件分类为块特殊文件、符号链接、目录或不存在。
这是它的一般格式:
sudo file -s 文件名
例如,要读取ploop19269文件,请输入:
sudo 文件 -s /dev/ploop19269
输出表明ploop19269是 DOS/MBR 引导扇区。
读取压缩文件
有两种方法可以检查压缩文件,如ZIP或gzip档案,-z和-Z选项。前者显示详细信息及其内容,而后者仅显示文件类型。
这是-z选项的一般语法:
file -z 文件名
例如,要读取test2.txt.gz文件的完整数据,请输入:
文件-z test2.txt.gz
输出指定test2.txt.gz是一个包含test2.txt 的gzip压缩文件:
这是-Z选项的一般格式:
file -Z 文件名
例如,要仅查看test.gz的文件类型,请输入:
文件-Z test.gz
此命令只会打印出test.gz中文件的类型——ASCII 文本。
测试文件的解析版本
添加-c选项允许您查看任何文件的解析版本。它显示类型、操作码和值等信息。通常,它与-m选项结合使用以在安装前调试新的魔术文件。
这是它的一般语法:
file -c 文件名
例如,要打印test.txt文件的解析形式,请输入:
文件-c test.txt
输出应如下所示:
列出文件类型
file 命令使用 Regex 样式范围列出目录中的所有文件类型。键入文件并将值放在方括号中,然后是*。
它的一般语法是:
文件 [范围 1-范围 2]*
例如,要检查从a到z范围内的文件,请输入:
文件 [az]*
输出应如下所示:
由于此程序区分大小写,因此输出将仅显示以小写字母 a 到 z 开头的文件。要包括大写字符,请添加另一个范围。例如:
文件 [az]* [AZ]*
输出如下所示:
结论
在 UNIX 系统中,文件名和扩展名可能与其实际类型不同。因此,Linux 提供了 file 命令来帮助用户判断文件的类型。
执行时,使用适当的选项并指定文件名。有许多可接受的变量可与文件命令一起使用,例如:
- -c – 测试文件的解析形式。
- -i – 查找 MIME 类型。
- * – 列出多个文件。
- -z – 读取压缩内容。
我们希望本文能帮助您了解如何使用 Linux 文件命令管理数据。如果您有任何问题或建议,请将其留在下面的评论部分。