如何在 Linux 中找出文件类型
在 Linux 中,一切都被视为一个文件。在 UNIX 中,七种标准文件类型是常规、目录、符号链接、FIFO 特殊、块特殊、字符特殊和套接字。在 Linux/UNIX 中,我们必须处理不同的文件类型才能有效地管理它们。
在 Linux/UNIX 中,文件主要分为 3 部分:
- 常规文件
- 目录文件
- 特殊文件
在任何操作系统中找出文件类型的最简单方法是查看其扩展名,例如 .txt、.sh、.py 等。如果文件没有扩展名,那么在 Linux 中我们可以使用文件实用程序。在本文中,我们将演示文件命令示例,以确定 Linux 中的文件类型。
要找出文件类型,我们可以使用 file 命令。
Syntax: file [OPTION…] [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 中的文件类型以及使用ls和file命令将输出的内容File Type Command to create the File Located in The file type using “ls -l” is denoted using FILE command output Regular FIle touch Any directory/Folder – PNG Image data, ASCII Text, RAR archive data, etc Directory File mkdir It is a directory d Directory Block Files fdisk /dev b Block special Character Files mknod /dev c Character special Pipe Files mkfifo /dev p FIFO Symbol Link Files ln /dev l Symbol link to Socket Files socket() system call /dev s Socket
文件类型和说明
常规文件
常规文件是系统上包含程序、文本或数据的普通文件。它用于存储文本或图像等信息。这些文件位于目录/文件夹中。常规文件包含所有可读文件,如文本文件、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 命令来找出文件类型: