如何在 Linux 中查找文件类型
在 Linux 操作系统中,所有内容通常都可以视为文件。在 UNIX 中,总共有七种标准文件类型 -
FIFO 特殊文件
块特殊文件
字符特殊文件
套接字文件
常规文件
目录文件
符号链接文件
说到文件,主要可以分为以下几类 -
常规文件
目录文件
特殊文件
在操作系统中,查找特定文件最简单的方法是查看该文件的扩展名。扩展名可以是".txt"、".py"、".go"等。如果某个文件在 Linux 中没有任何扩展名,那么我们基本上将该文件称为"文件实用程序"。
在本教程中,我们将展示如何使用不同的 Linux 命令找出 Linux 中存在的不同文件的类型。
如果某个文件在 Linux 中没有任何类型,那么我们可以使用一个名为"file"的 Linux 文件实用程序。它用于对特定文件进行一些基本测试,然后打印文件类型。
现在我们知道了如何打印文件类型,让我们通过几个示例来了解它的工作原理。
示例 1
在第一个示例中,我们将使用带有默认选项"-v"的"file"命令,这将验证此文件使用的 file 实用程序的版本。
考虑下面的命令 -
file -v
在终端上运行上述命令,将产生以下输出 −
file-6.11 来自 /etc/magic:/usr/sample/misc 的魔法文件
在上面的输出中,您可以看到第一行打印了文件所使用的文件实用程序的版本,下一行则显示了文件的详细信息。
现在我们对 'file' 命令有了一点了解,让我们在不同的示例中使用它。
示例 2
在本例中,我们将使用 'file'命令并传递一个文件作为参数,然后我们将运行该命令。
文件 mybashfile.sh
执行后,它将在终端上生成以下输出 -
mybashfile.sh:ASCII 文本
注意 - 请注意,以上输出仅适用于我的机器,您的机器上可能有所不同。
示例 3
如果您想逐行检查文件,则可以使用'-f' 选项,该选项在 'file' 命令中可用。请考虑以下命令 -
file -f sample.tar.gz
运行上述命令,您将看到以下输出 -
sample.tar.gz:bzip2 压缩数据,块大小 = 900k
示例 4
众所周知,默认情况下,"file"命令会运行一些测试来确定特定文件的扩展名类型,如果您想跳过这些步骤,可以使用一些默认选项。这样,该命令的运行速度会更快,因为它会跳过所有不必要的测试,我们还提供了一些示例测试供您跳过。
请考虑下面的命令。
file -e ascii -e reduce-e elf sample
在上面的命令中,我们使用了"-e"选项,然后传递了想要跳过的不同测试的名称,以便加快命令的运行速度。
默认情况下,还有一个不同的选项,用于读取块或字符特殊文件。
考虑下面的命令 -
file -s /dev/sda1
上面的文件是一个分区文件,其中包含不同的内存块和分区,我们可以使用它们,也可以借助"file"命令中的"-s"命令选项进行打印。
示例 5
让我们考虑一个例子,我们知道我们有一个压缩文件,并且我们想知道该文件中存在什么样的数据。我们可以借助 'file' 命令进行检查,并提供默认选项 '-z'。
'-z' 选项用于指示我们要查看特定压缩文件内部的文件。
请考虑以下命令 -
file -z samplefile -z samplefile -z sample
在上述命令中,文件名 'sample'是一个压缩文件,如果您在终端上运行上述命令,您将获得有关该文件类型及其包含数据类型的详细信息。
假设您想要打印有关特定文件内容的信息(而不是文件的压缩程度),那么您可以使用带有 '-Z' 选项的 'file' 命令 -
file -Z sample
如果您在终端上运行上述命令,您将仅获得有关 'sample' 文件中存在的数据的信息。
示例 6
如有必要,您可以指示 'file' 命令仅输出 MIME 类型字符串,而不是我们运行 'file' 命令时通常获得的更传统或基本的人类可读输出。命令。
为了获取 mime 类型字符串作为输出,您需要运行以下命令 -
file -i -s mybashfile.sh
在终端中运行上述命令后,我们将获得以下输出 -
mybashfile.sh: text/plain; charset=us-ascii
示例 7
如果您想打印特定文件类型的有效扩展名列表(以斜杠分隔),请使用以下命令 -
file --extension sample.tar.gz
在终端中运行上述命令后,我们将得到以下输出 -
sample.tar.gz: ??
结论
在本教程中,我们解释了如何使用"file"命令并借助不同的选项来了解文件的类型。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

