📜  如何在 Linux 中找出文件类型

📅  最后修改于: 2022-05-13 01:57:33.306000             🧑  作者: Mango

如何在 Linux 中找出文件类型

在 Linux 中,一切都被视为一个文件。在 UNIX 中,七种标准文件类型是常规、目录、符号链接、FIFO 特殊、块特殊、字符特殊和套接字。在 Linux/UNIX 中,我们必须处理不同的文件类型才能有效地管理它们。

在 Linux/UNIX 中,文件主要分为 3 部分:

  1. 常规文件
  2. 目录文件
  3. 特殊文件

在任何操作系统中找出文件类型的最简单方法是查看其扩展名,例如 .txt、.sh、.py 等。如果文件没有扩展名,那么在 Linux 中我们可以使用文件实用程序在本文中,我们将演示文件命令示例,以确定 Linux 中的文件类型。

要找出文件类型,我们可以使用 file 命令。

您可以运行以下命令来验证文件实用程序的版本:

file -v

我们可以通过键入以下命令来测试文件类型:

file file.txt

我们可以在一个文件中传递文件列表,我们可以使用 -f 选项指定,如下所示:

cat file.txt
file -f file.txt

使用 -s 选项,我们可以读取块或字符特殊文件。

file -s /dev/sda



使用 -b 选项不会在输出行前添加文件名

file -f GFG.txt

使用 -F 选项将使用字符串作为分隔符而不是“:”。

file -F '#' GFG.txt

使用 -L 选项将遵循符号链接(如果设置了 POSIXLY_CORRECT,则为默认值):

file -L stdin

我们可以使用 –extension 选项为找到的文件类型打印以斜杠分隔的有效扩展名列表。

file --extension GFG.rar

有关更多信息和使用选项,您可以使用以下命令:

man file

我们还可以使用ls命令来确定文件类型。



句法:

ls [OPTION]... [FILE]...

下表显示了 Linux 中的文件类型以及使用lsfile命令将输出的内容

File TypeCommand to create the FileLocated inThe file type using “ls -l” is denoted usingFILE command output
Regular FIletouchAny directory/FolderPNG Image data, ASCII Text, RAR archive data, etc
Directory FilemkdirIt is a directorydDirectory
Block Filesfdisk/devbBlock special
Character Filesmknod/devcCharacter special
Pipe Filesmkfifo/devpFIFO
Symbol Link Filesln/devlSymbol link to
Socket Filessocket() system call/devsSocket

文件类型和说明

常规文件

常规文件是系统上包含程序、文本或数据的普通文件。它用于存储文本或图像等信息。这些文件位于目录/文件夹中。常规文件包含所有可读文件,如文本文件、Docx文件、编程文件等,二进制文件,图像文件如JPG、PNG、SVG等,压缩文件如ZIP、RAR等。

例子:

或者我们可以使用“ file *”命令找出文件类型

目录文件

目录文件的唯一作用是存储其他常规文件、目录文件和特殊文件及其相关信息。这种类型的文件将用蓝色表示,链接数大于或等于 2。目录文件包含它所包含的每个文件和子目录的条目。如果我们在一个目录中有 10 个文件,我们将在目录文件中有 10 个条目。我们可以使用cd命令在目录之间导航

我们可以使用以下命令找出目录文件:

ls -l | grep ^d 



我们也可以使用file *命令

特殊文件

1. 阻止文件:

块文件充当块设备的直接接口,因此它们也称为块设备。块设备是以块为单位执行数据输入和输出操作的任何设备。这些文件是硬件文件,其中大部分位于 /dev 中。

我们可以使用以下命令找出块文件:

ls -l | grep ^b

我们也可以使用file命令:

2.字符设备文件:

字符文件是一个硬件文件读取/在逐个在文件中写入数据。这些文件提供输入或输出的串行流,并提供对硬件设备的直接访问。终端、串行端口等是此类文件的示例。

我们可以通过以下方式找出字符设备文件:

ls -l | grep ^c

我们可以使用file命令来找出文件的类型:

3. 管道文件:

管道的另一个名称是“命名”管道,有时称为 FIFO。 FIFO代表“先进先出”,是指进入的字节顺序相同的属性。命名管道的“名称”实际上是文件系统中的文件名。该文件将数据从一个进程发送到另一个进程,以便接收进程以先进先出的方式读取数据。

我们可以使用以下命令找出管道文件:

ls -l | grep ^p

我们可以使用file命令来找出文件类型:

4.符号链接文件:

符号链接文件是 Linux 中的一种文件,它指向您设备上的另一个文件或文件夹。符号链接文件也称为符号链接,类似于 Windows 中的快捷方式。

我们可以使用以下命令找出符号链接文件:

ls -l | grep ^l



我们可以使用file命令来找出文件类型:

5. 套接字文件:

套接字是一种特殊文件,用于在应用程序之间传递信息并启用两个进程之间的通信。我们可以使用 socket() 系统调用创建一个套接字文件。套接字文件位于根文件夹的 /dev 中,或者您可以使用find / -type s命令 找到套接字文件。

find / -type s 

我们可以使用以下命令找出符号链接文件:

ls -l | grep ^s

我们可以使用 file 命令来找出文件类型: