P6 Linux 系统中的文件类型

news2024/11/30 20:49:50

目录

前言                     ​编辑           

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.coloradmin.cn/o/1290503.html

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

相关文章

Azure Machine Learning - Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4

通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4 环境准备 Azure 订阅 - 免费创建订阅已在所需的 Azure 订阅中授予对 Azure OpenAI 服务的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以填写 https://aka.ms/oai/access 处的表单来申请对 Azure Op…

基于PicGo实现Typora图片自动上传GitHub

文章目录 一. 引言二. 原理三. 配置3.1 GitHub 设置3.2 下载配置 PicGo3.3 配置 Typora3.4 使用 一. 引言 Typora是一款非常好的笔记软件,但是有一个比较不好的地方:默认图片是存放在本地缓存中。这就会导致文件夹一旦被误删或电脑系统重装而忘记备份文件…

vr建筑虚拟实景展厅漫游体验更直观全面

随着科技的不断进步,纯三维、可交互、轻量化的三维线上展览云平台,打破时间界限,以其独特的魅力,给予客户更多的自主性、趣味性和真实性,客户哪怕在天南地北,通过网络、手机即可随时随地参观企业线上立体化…

多元线性回归(一)

基本概念 线性回归时机器学习中监督学习下的一种算法。回归问题主要关注是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个值型的自变量(预测变量)之间的关系。 需要预测的值:即目标变量&#x…

聚观早报 |东方甄选将上架文旅产品;IBM首台模块化量子计算机

【聚观365】12月6日消息 东方甄选将上架文旅产品 IBM首台模块化量子计算机 新思科技携手三星上新兴领域 英伟达与软银推动人工智能研发 苹果对Vision Pro供应商做出调整 东方甄选将上架文旅产品 东方甄选宣布12月10日将在东方甄选APP上线文旅产品,受这一消息影…

idea+spring框架+thymeleaf实现数据库增加数据(不使用xml文件)

增加数据主要涉及四个文件 Apple.java写清楚数据库内部字段 package com.example.appledemo.pojo;import lombok.Getter;Getter public class Apple {private Integer appleId;private Integer price;private Integer weight;public void setAppleId(Integer appleId) {this.a…

合并PDF(将多个pdf文件整合成一个pdf文件)

推荐使用下面这个免费在线的PDF文件合并工具,简单且易操作。 合并PDF - 在线上免费合并PDF文件 (smallpdf.com) 还有其他功能,不过现在我尚未使用其他功能: 关于费用:

工厂方法设计模式项目实践

前言 以采集数据处理逻辑为例,数据采集分为不同种类如:MQTT、MODBUS、HTTP等,不同的采集数据有不同的解析处理逻辑。但总体解析处理步骤是固定的。可以使用工厂方法设计模式简化代码,让代码变得更加优雅。 代码实战 抽象类 总体…

反序列化 [网鼎杯 2020 朱雀组]phpweb 1

打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去,func和p 我们需要猜测func和p两个参数之间的关系,可以用php函数MD5测一下看看 我们在响应处得到了一串密文,md5解密一下看看 发…

Vue+ElementUI技巧分享:结合Sortablejs实现表格行拖拽

文章目录 前言准备工作示例代码代码说明1. 引入依赖和组件结构2. 组件数据和生命周期3. 实现拖拽功能4. 更新数据和服务器同步 运行效果总结 前言 在很多动态网页应用中,用户界面的交互性是提高用户体验的关键。在 Vue.js 中,结合 Element UI 和 sortab…

为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模?

1.2为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.2节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学…

【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和Linux还有算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 …

微信小程序 分享的两种方式:菜单级和按钮级

按钮级 在使用微信小程序的时候,我们可能会设计到一些视频的一些分享等,那么视频分享也分为两种方式,例如下图,当我们点击的时候,进行一个转发分享的一个操作 那么在原先代码的基础上,我们需要在原先代码的基础上butt…

用PHP与html做一个简单的登录页面

用PHP与html做一个简单的登录页面 login.html的设计 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

lv11 嵌入式开发 PWM 18

目录 1 PWM简介 1.1 蜂鸣器工作原理 1.2 GPIO控制 1.3 PWM控制 2 Exynos4412下的 PWM控制器 2.1 总览 2.2 设置步骤 2.3 功能框图 2.4 特征 3 寄存器介绍 3.1 总览 3.2 TCFG0 一级分频寄存器 3.3 TCFG1 二级分频寄存器 3.4 TCON控制寄存器 3.5 TCNTB TCMPB T…

苹果ios的系统app应用WebClip免签应用开源及方式原理

在移动设备上&#xff0c;为了方便访问我们经常使用的网站或服务&#xff0c;我们经常会希望将其添加到主屏幕上&#xff0c;以便快速启动。虽然我们可以通过使用浏览器书签实现这一目标&#xff0c;但添加一个图标到主屏幕上&#xff0c;使得它看起来与原生App无异&#xff0c…

【EI会议征稿中】第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024)

第三届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2024&#xff09; 2024 3rd International Conference on Cyber Security, Artificial Intelligence and Digital Economy 第二届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2023&…

ubuntu中显卡驱动,cuda,cudnn安装

1. 在ubuntu中安装显卡驱动 参考&#xff1a;https://blog.csdn.net/m0_37605642/article/details/119651996 2.在ubuntu中安装cuda 参考&#xff1a;https://blog.csdn.net/m0_61431544/article/details/127007300 2.1 安装cuda cuda官网&#xff1a; https://developer.n…

ORACLE数据库实验总集 实验四 Oracle数据库物理存储结构管理

一、实验目的 &#xff08;1&#xff09;掌握 Oracle数据库数据文件的管理 &#xff08;2&#xff09;掌握 Oracle数据库控制文件的管理 &#xff08;3&#xff09;掌握 Oracle数据库重做日志文件的管理 &#xff08;4&#xff09;掌握 Oracle数据库归档管理&#xff0c; 二、…

深入理解 Java 虚拟机(JVM)从入门到精通

目录 一、JVM内存结构1、堆&#xff08;Heap&#xff09;&#xff08;1&#xff09;特点&#xff08;2&#xff09;堆内存分配&#xff08;3&#xff09;晋升到老年代的方式&#xff08;4&#xff09;堆内存检验方式2、虚拟机栈&#xff08;VM Stack&#xff09;&#xff08;1&…