P6 Linux 系统中的文件类型

目录

前言                     ​编辑           

01 linux系统查看文件类型

02 普通文件' - '

03 目录文件' d '

04 字符设备文件' c '和块设备文件' b '

05 符号链接文件' l '

06 管道文件' p '

07 套接字文件' s '

总结


前言
                                

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨ 

🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨

🛸推荐专栏3: ​​​​​​《 链表_@ChenPi的博客-CSDN博客 》 ✨✨✨
🌺本篇简介  :  上几章我们学习了关于文件操作的系统调用和C函数文件相关的API

                         那学习这些有什么用呢? 

我们说过Linux底下皆文件,说了这么久,那都有什么不同呢?还有就是windows里面的后缀名在Linux影响大不大

 

01 linux系统查看文件类型

在 Linux 系统下,可以通过 stat 命令或者 ls 命令来查看文件类型,如下所示

stat 命令非常友好,会直观把文件类型显示出来;

对于 ls 命令来说,并没有直观的显示出文件的类型, 而是通过符号表示出来,如ls -la

下图表示符号代表不同的文件类型

  1. ' - ':普通文件
  2. ' d ':目录文件
  3.  ' c ':字符设备文件
  4. ' b ':块设备文件
  5. ' l ':符号链接文件
  6. ' s ':套接字文件
  7. ' p ':管道文件


02 普通文件' - '

  1. 普通文件(regular file)在 Linux 系统下是最常见的,譬如文本文件、二进制文件,我们编写的源代码 文件这些都是普通文件,也就是一般意义上的文件。普通文件中的数据存在系统磁盘中,可以访问文件中的 内容,文件中的内容以字节为单位进行存储于访问。普通文件可以分为两大类:文本文件和二进制文件。
  2. 文本文件:文件中的内容是由文本构成的,所谓文本指的是 ASCII 码字符。文件中的内容其本质 上都是数字(因为计算机本身只有 0 和 1,存储在磁盘上的文件内容也都是由 0 和 1 所构成),而 文本文件中的数字应该被理解为这个数字所对应的 ASCII 字符码;譬如常见的.c、.h、.sh、.txt 等 这些都是文本文件,文本文件的好处就是方便人阅读、浏览以及编写。
  3. 二进制文件:二进制文件中存储的本质上也是数字,只不过对于二进制文件来说,这些数字并不是 文本字符编码,而是真正的数字。譬如 Linux 系统下的可执行文件、C 代码编译之后得到的.o 文 件、.bin 文件等都是二进制文件


03 目录文件' d '


目录(directory)就是文件夹,文件夹在 Linux 系统中也是一种文件,是一种特殊文件,同样我们也可 以使用 vi 编辑器来打开文件夹,如下所示:

可以看到,文件夹中记录了该文件夹当下的路径以及该文件夹下所存放的文件。可以使用mkdir,rmkdir函数创建删除文件夹,使用opendir()、readdir()和 closedir()来打开、读取以及关闭目录

04 字符设备文件' c '和块设备文件' b '


Linux 系统下,一切皆文件,也包括各种硬件设备。字符设备文件(character)、块设备(block) 对应的是硬件设备,在 Linux 系统中,硬件设备会对应到一个设备文件,应用程序通过对设备文件的读写来 操控、使用硬件设备,譬如 LCD 显示屏、串口、音频、按键等,在本教程的进阶篇内容中,将会向大家介 绍如何通过设备文件操控、使用硬件设备。 Linux 系统中,可将硬件设备分为字符设备和块设备,所以就有了字符设备文件和块设备文件两种文件 类型。虽然有设备文件,但是设备文件并不对应磁盘上的一个文件,也就是说设备文件并不存在于磁盘中, 而是由文件系统虚拟出来的,一般是由内存来维护,当系统关机时,设备文件都会消失;字符设备文件一般 存放在 Linux 系统/dev/目录下,所以/dev 也称为虚拟文件系统 devfs。

05 符号链接文件' l '

符号链接文件(link)类似于 Windows 系统中的快捷方式文件,是一种特殊文件,它的内容指向的是另 一个文件路径,当对符号链接文件进行操作时,系统根据情况会对这个操作转移到它指向的文件上去,而不 是对它本身进行操作,譬如,读取一个符号链接文件内容时,实际上读到的是它指向的文件的内容。

如果大家理解了 Windows 下的快捷方式,那么就会很容易理解 Linux 下的符号链接文件。上图 中 的 rec,stderr,stdin,stdout 等这些文件都是符号链接文件,箭头所指向的文件路径便是符号链接文件所指 向的文件。关

06 管道文件' p '

管道文件(pipe)主要用于进程间通信

07 套接字文件' s '

套接字文件(socket)也是一种进程间通信的方式,与管道文件不同的是,它们可以在不同主机上的进 程间通信,实际上就是网络通信

总结

本小节简单地介绍了 Linux 系统中的 7 种文件类型,包括:普通文件、目录、字符设备文件、块 设备文件、符号链接文件、管道文件以及套接字文件,下面对它们进行一个简单地概括:

  1. 普通文件是最常见的文件类型;
  2. 目录也是一种文件类型;
  3. 设备文件对应于硬件设备;
  4. 符号链接文件类似于 Windows 的快捷方式;
  5. 管道文件用于进程间通信;
  6. 套接字文件用于网络通信

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

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

相关文章

基于SpringBoot+Thymeleaf+Mybatis实现大学生创新创业管理系统(源码+数据库+项目运行指导文档)

一、项目简介 本项目是一套基于SpringBoot实现大学生创新创业管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试&#…

了解linux文件系统

本章主要介绍文件系统的管理 了解什么是文件系统 对分区进行格式化操作 挂载分区 查找文件 在Windows系统中,买了一块新的硬盘加到电脑之后,需要对分区进行格式化才能使 用,Linux系统中也是一样,首先我们要了解一下什么是文件系…

点评项目——商户查询缓存

2023.12.7 redis实现商户查询缓存 在企业开发中,用户的访问量动辄成百上千万,如果没有缓存机制,数据库将承受很大的压力。本章我们使用redis来实现商户查询缓存。 原来的操作是根据商铺id直接从数据库查询商铺信息,为了防止频繁地…

CTF 7

信息收集 存活主机探测 arp-scan -l 端口探测 nmap -sT --min-rate 10000 -p- 192.168.0.5 服务版本等信息 nmap -sT -sV -sC -O -p22,80,137,138,139,901,5900,8080,10000 192.168.0.5Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-02 21:23 CST Stats: 0:01:30 elaps…

无公网IP环境Windows系统使用VNC远程连接Deepin桌面

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

JSP以监听生命周期为例 讲解监听器

好 最后 我们说说监听器 内容还是非常多的 这里 从老师哪里拿到的一个文案 大家可以查看具体内容 我们这里以监听声明周期为例 这边 我们在项目java模块下创建一个包 叫 listener 名字随便取 我们就这样 看着明显一点 然后 我们在下面创建一个java类 叫 test 因为是用来测试的…

1.1美术理论基础

一、光影 物体呈现在人们眼前的时候,不同的受光面其明暗变化以及物体的影子。 1.什么是黑白灰 在美术中黑白灰指亮面、灰面、暗面,属于素描的三大面,主要体验一个物体的整体寿光过程。普遍存在于各种艺术和设计领域。黑白灰作品的出现&#x…

openlayers和canvas结合使用报画布污染问题

使用场景 对同一条道路,不同时间的航飞数据,对比出差异,以确定施工进度和进行监管,并存档图像资料。 实现: vue pixelmatch像素对比插件 geoserver发布WMTS图层 报错 排查 1.根据报错,canvas使用环…

加速软件测试!8款自动化工具让你事半功倍!

俗话说:“工欲善其事,必先利其器”。在现代软件测试开发领域,自动化测试工具的使用已经变得至关重要。这些工具不仅提高了测试效率,还确保了软件质量和稳定性。 本文将向您介绍8款自动化软件测试必备工具,它们涵盖了各…

python+pytest接口自动化(10)-session会话保持

在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢? 上一篇文章我们介绍了Cookie绕过登录,其实这就是保持登录状态的方法之一。 另外一种方式则是通过session进行会…

日志收集 grafana-loki

文章目录 部署 grafana-loki部署 grafana配置 loki 源配置节点大盘 部署 grafana-loki 官方文档:部署 grafana-loki 部署命令 设置集群的存储类,如果有默认可以不设置设置命名空间 helm install loki oci://registry-1.docker.io/bitnamicharts/grafa…

MyCAT读写分离

Mycat 是一个开源的数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有存 储引擎,所以并不是完全意义的数据库系统。 那么 Mycat 是什么?Mycat 是数据库中间件,就是介于数据库与应用之间,进行数…