如何在 Linux 中查找文件类型

linuxopen sourceoperating system

在 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"命令并借助不同的选项来了解文件的类型。


相关文章


有用资源