如何在Linux中查找文件类型
在Linux操作系统中,通常一切都被视为文件。在UNIX中,总共有七种标准文件类型:
FIFO 特殊文件
块特殊文件
字符特殊文件
套接字
普通文件
目录
符号链接
文件可以主要分为以下几类:
普通文件
目录文件
特殊文件
在操作系统中,确定特定文件类型最简单的方法是查看该文件的扩展名,例如 '.txt'、'.py'、'.go' 等。如果Linux中的特定文件没有任何扩展名,则我们将其称为“文件实用程序”。
在本教程中,我们将展示如何使用不同的Linux命令来确定Linux中不同文件类型。
如果Linux中的特定文件没有任何类型,我们可以使用名为“file”的Linux文件实用程序,它用于对特定文件执行一些基本测试,然后打印文件类型。
现在我们知道了如何打印文件类型,让我们来看几个例子。
示例 1
在第一个示例中,我们将使用带默认选项“-v”的“file”命令,该命令将验证此文件正在使用哪个版本的实用程序。
请考虑以下命令:
file -v
在终端上运行上述命令,它将产生以下输出:
file-6.11 magic file from /etc/magic:/usr/sample/misc
在上述输出中,您可以看到第一行基本打印了文件使用的文件实用程序的版本,下一行则提供了文件的详细信息。
现在我们对“file”命令有了一些了解,让我们在不同的示例中使用它。
示例 2
在此示例中,我们将使用“file”命令并传递一个文件作为参数,然后运行该命令。
file mybashfile.sh
执行后,它将在终端上产生以下输出:
mybashfile.sh: ASCII text
注意:上述输出特定于我的机器,在您的机器上可能会有所不同。
示例 3
如果您想逐行检查文件,则可以使用“file”命令中提供的“-f”选项。请考虑以下命令:
file -f sample.tar.gz
运行上述命令,您将看到以下输出:
sample.tar.gz: bzip2 compressed data, block size = 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”命令以及不同的选项来了解文件类型。