Linux系统文件类型简介

Linux中的文件类型

在Linux系统中,每个文件都有一个文件类型,用于表示文件的种类。常见的文件类型包括:

-: 普通文件;
d: 目录文件;
b: 块设备文件;
c: 字符设备文件;
s: 套接字文件;
l: 符号链接文件;
p: 命名管道文件;

注:

  • 硬链接文件也显示为 -
  • 符号链接文件也称为软链接文件
  • 在Linux系统中,可以使用ls -l 或者ll命令输出文件的信息,以下为输出信息的简要介绍。 在这里插入图片描述

普通文件

普通文件是最常见的文件类型之一,它包含了各种数据,如文本文件、二进制文件、程序文件等。

ls -l命令的输出中,普通文件的权限字段以 - 开始,表示它是一个普通文件。

目录文件

目录文件可存储其他文件和目录的信息,用于组织文件系统中的文件结构。每个目录文件包含了一个或多个文件名和它们对应的inode号码,这样就可以找到文件的位置和相关信息。

目录文件是文件系统中的一个重要组成部分,它们允许用户组织和管理文件。通过目录文件,用户可以创建子目录、移动文件、查看文件结构等。Linux系统中,文件目录是一个树状结构,顶层目录是根目录 /

ls -l命令的输出中,目录文件的权限字段以 d 开始,表示它是一个目录。

块设备文件

块设备文件用以表示块设备。块设备是一种数据存储设备,它以固定大小的块(通常为512字节或更大)为单位进行读写操作。硬盘驱动器、固态硬盘、USB设备等都是块设备的例子。

块设备文件是与物理设备相对应的抽象,它们允许操作系统通过块级别的I/O(输入/输出)与设备进行交互。块设备通常用于存储数据,而文件系统可以在其上创建,以便用户能够方便地读写数据。

ls -l命令的输出中,块设备文件的权限字段以 b 开始。

字符设备文件

字符设备文件是表示字符设备的一种文件类型。字符设备是一种通过字符流进行输入和输出的设备,与块设备不同,它不以固定大小的块为单位进行读写操作。例如,键盘、鼠标、串口等设备就是字符设备。

字符设备文件以流的形式传输数据,而不是块设备那样以固定大小的块为单位。它们通常用于与设备进行交互,通过单个字符的输入和输出。字符设备在Linux系统中通过文件接口来进行访问和操作。

ls -l命令的输出中,字符设备文件的权限字段以 c 开始,表示它是一个字符设备文件。

套接字文件

套接字文件用以表示套接字(socket)。套接字是一种通信机制,允许不同进程在同一台计算机或不同计算机之间进行通信。套接字文件用于在文件系统中表示和管理这些通信端点。

套接字文件允许进程通过网络或本地通信进行数据传输。它们在文件系统中的存在使得进程可以使用文件 I/O 的方式进行套接字通信。套接字文件通常用于实现各种网络服务和应用程序之间的通信。

ls -l命令的输出中,套接字文件的权限字段以 s 开始,表示它是一个套接字文件。

链接文件

链接文件包含两种不同类型:硬链接(hard link)和符号链接(symbolic link,也称为软链接)。

  • 硬链接
    • 硬链接允许一个文件有多个路径,即多个文件名指向同一个inode。
    • 硬链接只能链接到同一文件系统中的文件,并且不能链接到目录。
    • 修改任何一个硬链接都会影响其他硬链接,因为它们实际上是同一个文件。
    • 创建硬链接的命令是 ln,格式为ln 源文件 目标链接硬链接文件的创建演示
  • 符号链接(软链接)
    • 符号链接是一个独立的文件,其中包含指向目标文件或目录的路径。
    • 符号链接可以链接到不同文件系统中的文件。
    • 修改符号链接不会影响原始文件,而是修改链接的路径。
    • 创建符号链接的命令是 ln,并使用 -s 参数,格式为 ln -s 源文件 目标链接
      软链接文件的创建演示

命名管道文件

命名管道文件(Named Pipe)是一种特殊类型的文件,用于进程间通信。它提供了一种在不同进程之间传递数据的方式,使得一个进程的输出可以成为另一个进程的输入。

要创建命名管道文件,可以使用 mkfifo 命令,格式为 mkfifo 管道文件名

创建了命名管道文件之后,可以在不同的进程中打开该文件,并通过文件读写操作进行进程间通信。
命名管道文件文件创建
命名管道文件输入输出

如有不当或错误之处,恳请您的指正,谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/631311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

掌上单片机实验室 – 低分辨率编码器测速方式完善(24)

一、背景 本以为“掌上单片机实验室”这一主题已告一段落,可最近在测试一批新做的“轮式驱动单元”时,发现原来的测速算法存在问题。 起因是:由于轮式驱动单元的连线较长,PCB体积也小,导致脉冲信号有干扰,加…

使用 Postman 发送 get 请求的简易教程

在API开发与测试的场景中,Postman 是一种普遍应用的工具,它极大地简化了发送和接收HTTP请求的流程。要发出GET请求,用户只需设定正确的参数并点击发送即可。 如何使用 Postman 发送一个GET请求 创建一个新请求并将类型设为 GET 首先&#…

CAN\CANFD数据记录仪汽车电子售后神器

随着汽车工业的快速发展,CAN总线已成为汽车电子控制网络的标准。因此,对CAN总线数据的记录和分析变得尤为重要。 CAN数据记录仪在汽车电子售后领域的应用主要包括以下几个方面: 故障诊断和排查:通过实时记录总线上的数据&#xf…

TCP的三次握手,四次挥手

三次握手 第一次握手:客户端发送SYN报文,井发送seq为x序列号给服务端,等待服务端的确认第二次握手:服务端发送SYNACK报文,并发送seq为Y的序列号,在确认序列号为x1第三次握手:客户端发送ACK报文&…

画图案例分享

案例 1 from scipy.misc import derivative from scipy.integrate import quad import matplotlib.pyplot as plt import numpy as np import pandas as pd from scipy.stats import norm import warningsplt.style.use(ggplot) np.random.seed(37) warnings.filterwarnings(i…

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络 SUSE Linux Enterprise Server是企业级Linux系统,适合企业应用。该文档适用于在VMware workstation平台安装SUSE Linux Enterprise Server虚拟机。 1.安装准备 1.1安装平台 Windows…

如何用GPT进行论文润色与改写?

详情点击链接:如何用GPT/GPT4进行论文润色与改写?一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二…

前端(html+css+javascript)作业--展现家乡的网页

期末期间,老师布置了前端作业,现在放到这里,给各位同志参考。 桂平市是广西壮族自治区的一个美丽的城市,拥有丰富的历史文化和自然景观,属于贵港市管辖,那为什么是看起来是市级而不是县级,其实他…

史上最全在IDEA中部署并使用Tomcat,图文并茂一看包会!

前言 之前自己迷茫过怎样在idea中使用Tomcat,因此查了很多资料,在这做个总结。 一、建立过程 1.新建一个JAVA文件 2.添加框架 在项目的创建区内,右击项目名,在弹窗中选择“添加框架支持”;选择“Web应用程序4.0”&…

Eclipse闪退 打开eclipse闪退 打开eclipse图标一闪而过 eclipse闪退 eclipse打不开

Eclipse闪退 打开eclipse闪退 打开eclipse图标一闪而过 eclipse闪退 eclipse打不开 问题描述切换为命令行启动 查看异常日志 问题描述 双击图标,窗口一闪而过,马上关闭了 切换为命令行启动 查看异常日志 进入Eclipse安装目录,运行终端启动…

指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针 概述基本概念理解量子纠缠PythonJavaC 理解波粒二象性PythonJavaC 理解量子隧穿理解宇宙常量PythonJavaC 概述 量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也…

1. SpringBoot3 基础

文章目录 1. SpringBoot 概述2. SpringBoot 入门3. SpringBoot 配置文件3.1 SpringBoot 配置文件基本使用3.2 yml 配置文件 4. SpringBoot 整合 Mybatis5. Bean 管理5.1 Bean 扫描5.2 Bean 注册5.3 注册条件 6. 组合注解7. 自动配置原理8. 自定义 Starter 1. SpringBoot 概述 …

力扣hot100 完全平方数 完全背包 滚动数组 四平方和定理

Problem: 279. 完全平方数 文章目录 思路💖 完全背包💖 滚动数组优化💖 四平方和定理 思路 👨‍🏫 三叶神解 👨‍🏫 数学解法 💖 完全背包 ⏰ 时间复杂度: O ( n 2 n ) O(n^2 …

072:vue+mapbox 点击某图层feature,高亮这部分

第072个 点击查看专栏目录 本示例是介绍如何在vue+mapbox中点击某图层feature,高亮这部分。思路是通过点击,获取点击部分的feature信息,生成一个新的source和layer,如果这个图层不为空,则清除之,相当于点击了别的地方,原有的高亮会删除掉,在别的地方高亮。 直接复制下…

探寻编码时代的潮流旋律

🚩本文介绍 随着技术的不断演进,编程语言作为软件开发的基石也在不断发展。作为一名扎根运维领域的工程师,我深感了解和把握编程语言的新趋势对于个人职业发展至关重要。在这篇博客中,我们将深入探讨当前编程语言领域的最新动态&…

VMware虚拟机自定义网段及物理机ping不通虚拟机问题解决

Vmware网络介绍🛜 VMware虚拟机提供了几种网络模式,其中包括桥接模式(Bridged Mode)、NAT模式(Network Address Translation Mode)和仅主机模式(Host-Only Mode)。这些模式允许虚拟…

Android应用开发:基础小游戏开发

手机游戏成为人们日常娱乐的重要组成部分。如果您想踏入这个充满创意和技术挑战的领域,制作一个Android基础小游戏是个不错的开始。以下是从零开始制作Android小游戏的基础指南。 1选择开发环境和工具 Android Studio 是官方推荐的开发环境,它提供了强大…

《2023大数据产业年度创新技术突破》榜重磅发布丨第六届金猿奖

‍ 第六届年度金猿榜单/奖项 “第六届年度金猿季策划活动——2023大数据产业创新技术突破榜单/奖项”由金猿X数据猿X上海大数据联盟共同推出。 大数据产业创新服务媒体 ——聚焦数据 改变商业 第六届 “年度金猿季大型主题策划活动”由金猿、数据猿、上海大数据联盟共同组成的…

【playwright】新一代自动化测试神器playwright+python系列课程18_playwritht元素相关操作_等待元素到某种状态

元素相关操作_等待元素到某种状态 对于自动化测试来说,本质上就是定位元素、操作元素。网页上的元素有不同状态,有些元素本来不在网页的DOM中,经过某一步操作后才出现。有些元素是本来就已经在DOM中但是是隐藏的状态,经过某一步操…

JVM知识总结

1.概述 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,作用是为了支持跨平台特性。 功能: 装载字节码,解释/编译为机器码 管理数据存储和垃圾回收 优化热点代码提升效率 …