Linux 中的文件类型

news2024/11/19 2:45:17

目录

Linux文件类型说明

软链接

软链接特点

软链接工作过程

        正常原文件a工作流程

        文件a的软链接工作流程

硬链接

硬链接的特点

文件a的硬链接工作流程

软链接与硬链接的比较

测试软链接以及硬链接

1.进入根目录

2.创建test目录

3.进入test目录中,并创建a文件

4.创建硬链接

5.创建软链接

6.向文件中添加内容,并查询

7.删除源文件a

8.重新创建源文件a

文件操作命令

1.touch命令

        语法格式

        示例

        特点

        参数以及功能

2.stat命令

        示例

3.mv命令

        语法格式

        示例

4.rm命令

        语法格式

        参数及功能

5.ln命令 

        语法格式

        参数及功能


Linux文件类型说明

使用‘ls-l’命令查看到的第一个字符文件类型说明
-普通文件类似Windows的记事本
d目录文件类似于Windows的文件夹
c字符设备文件可供存储的接口设备,随机读写,硬盘
b块设备文件可存储的接口设备,随机读写,硬盘
p管道文件用于进程间的通信
S套接字文件通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
I符合链接,又称为软连接,和原文件不是一个文件例如Windows的快捷方式,如果原文件被删除,所有指向它的符号链接也就都被破坏了。软连接有自己的node,是Linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符合链接可以跨越文件系统,也可以为目录建立

软链接

软链接特点

        有点类似Windows上的桌面快捷方式

  1. 和文件不是一个文件

  2. 查看软链接的时候,内容和源文件一模一样内容修改保持一致

  3. 只要原文件在,则可以无限创建

  4. 原文件删除,则软链接还在,但是看不到内容

  5. 保存的是原文件的路径

软链接工作过程

        正常原文件a工作流程

        通过原文件a的Inode节点号--->在indoe table中去找节点号 -->在block寻找对应的块 -->将内容读取到屏幕

        文件a的软链接工作流程

注意:

        如果删除当前原文件a,然后新建一个原文件a(与源文件a路径相同

        软链接工作流程

        原因 --- 软链接中保存的是原文件的路径

硬链接

硬链接的特点

  1. 和源文件有相同的inode,存放内容的块也是一样

  2. 查看硬链接的时候,内容和源文件一模一样,内容修改保持一致

  3. 源文件被删除硬链接还在,可以看到内容

文件a的硬链接工作流程

        a.hard(源文件a的硬链接)--> 寻找源文件a在inode table中的节点号 --> 通过节点号访问block中对应的块 --> 读取内容到屏幕上

注意:

        如果删除源文件a,则此时硬链接a.hard可以访问内容

        注意 --- 当硬链接和源文件同时删除时,整个文件都被删除

软链接与硬链接的比较

硬链接
符号链接(软链接)
不同点
使用不带选项-s的ln命令创建使用带选项-s的ln命令创建
只能在与源文件相同的文件系统、分区和挂载设备上创建可跨越不同的文件系统、分区和挂载设备创建
只能针对文件创建硬链接,不能针对目录针对文件和目录均可建立软链接
具有硬链接关系的两个文件名指向的是硬盘上的同一块存储空间一个文件(或目录)指向另外一个文件(或目录)的文件名(或目录名),类似于Windows系统中的快捷方式
删除硬链接的任何一方文件后,另一方文件仍然有效删除源文件或目录后,软链接文件或目录无效
相同点对任何一方的内容进行修改都会影响到另一方

链接文件都不会将源文件复制一份,只会 占用非常少量的用于存储链接信息的存储空

测试软链接以及硬链接

1.进入根目录

[root@localhost ~]# cd /

2.创建test目录

[root@localhost /]# mkdir test

        测试

[root@localhost /]# ls

注意 :

        创建前需要先检查是否含有test,因为Linux中不能自动补全 .XXX,所以不能同名

3.进入test目录中,并创建a文件

[root@localhost /]# cd /test
[root@localhost test]# touch a

        测试

4.创建硬链接

[root@localhost test]# ln /test/a a.hard

        测试

5.创建软链接

[root@localhost test]# ln -s /test/a a.soft

        测试

6.向文件中添加内容,并查询

向文件a中添加

[root@localhost test]# echo 123 > a

查询

[root@localhost test]# cat a a.hard a.soft 

向硬链接中添加

[root@localhost test]# echo 23 >a.hard 

查询

向软链接中添加

[root@localhost test]# echo 33 > a.soft 

查询

[root@localhost test]# stat a a.hard a.soft 

LInks 为2的原因:

        因为硬链接与源文件的路径相同,所以此时的连接数目为2

Size --- 大小 --- 当前文件所占字节数

7.删除源文件a

[root@localhost test]# rm a

 测试

[root@localhost test]# ll

[root@localhost test]# cat a a.hard a.soft 

No such file or directory --- 没有这样的文件或目录 

8.重新创建源文件a

[root@localhost test]# echo 123 > a

        测试

[root@localhost test]# ll

[root@localhost test]# cat a a.hard a.soft 

a.hard不一样,原因

        当原文件删除时,硬链接还可以访问原文件,所以当原文件重新创建时因为对应的节点号与之前不同

[root@localhost test]# stat a a.hard a.soft 

文件操作命令

1.touch命令

        修改空文件更新已有文件目录的修改日期

语法格式

        touch 文件或目录名列表

示例

[root@localhost test]# touch b

特点

        若指定文件或目录已存在,则将文件或目录的日期时间修改为当前系统的时间和日期

        若文件不存在,则以指定的文件名创建空文件

参数以及功能

参数功能
-d yyyymmmdd把文件的存取修改时间,改为yyyy年mm月dd日
-a只把文件的存取时间改为当前时间
-m只把文件的修改时间改为当前时间

2.stat命令

        stat(display file or file system status --- 查看文件详细信息的命令,而且看到文件的最近访问时间,最近更改时间,最近改动时间

        执行权限 --- 所有用户

        所在路径 --- /usr/bin/stat

示例

[root@localhost ~]# stat anaconda-ks.cfg
文件: "anaconda-ks.cfg"
大小: 1453 块: 8 IO 块: 4096 普通文件
设备: 803h/2051dInode: 33574991 硬链接: 1
权限: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
环境: system_u:object_r:admin_home_t:s0
最近访问: 2018-11-06 23:22:23.409038121 +0800
最近更改: 2018-10-24 00:53:08.760018638 +0800 #数据修改时间
最近改动: 2018-10-24 00:53:08.760018638 +0800 #状态修改时间
创建时间: -

注意:

        类似于Windows中的属性中的常规

3.mv命令

        用于剪切或重复名文件

语法格式

        mv 原文件名称 目标文件名称

注意:        
        剪切操作不同于复制操作,因为它会 把源文件删除掉 ,只 保留剪切后的文件 。如果在同一个目录中将某个文件剪切后还 粘贴到当前目录 下,其实本质就是 对文件 进行了 重命名操作

示例

[root@localhost test]# mv b test1

4.rm命令

        删除文件或目录,可包含一个或多个文件名(各文件间用空格分隔)或用通配符表达,已实现删除多个文件或目录。

语法格式

        rm 文件或目录名以及路径

参数及功能

参数功能
-f覆盖已经存在的目标文件不提示
-i覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件被覆盖,是交互式拷贝
-r

递归删除整个目录树

5.ln命令 

        为文件或目录建立连接

语法格式

        ln  被链接的源文件或目录  链接文件或目标目录

参数及功能

参数功能
-s建立符号链接(软链接
-f删除已存在目录文件与源文件之间的连接关系
-i交互式的删除目标文件与源文件之间的链接关系

                 

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

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

相关文章

基于Redis的分布式锁,Redisson的简单使用和常用配置

介绍 Redisson是一个在Redis基础上实现的Java驻内存数据网格。Redisson提供了使用Redis的最简单最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中的放在处理业务逻辑上。 Redisson官方文档地址:https://githu…

蛋糕烘焙店小程序开发 让生活多点甜

蛋糕甜品因为较高的颜值、香甜的口感深受大众喜欢,当我们路过一家蛋糕烘焙店的时候,飘香的味道让我们流连忘返。但是互联网时代,各个行业都在转型,蛋糕烘焙店也需要由传统线下店面向线上线下结合的方式转变,以求摆脱区…

数据对象属性分类

数据集由数据对象组成,一个数据对象代表一个实体。数据对象又称样本、实例、数据点或对象。属性(attribute)是一个数据字段,表示数据对象的一个特征。属性向量(或特征向量)是用来描述一个给定对象的一组属性…

MySQL之单表访问方法

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的:从根儿上理解MySQL》 对于我们这些MySQL的使用者来说,MySQL其实就是一个软件,平时用的最多的就是查询功…

快码住!!! 二叉树概念、重要性质、存储结构 技巧大总结!

文章目录 树树的概念树的表示树在实际中的应用 二叉树二叉树的概念特殊的二叉树 二叉树的性质二叉树性质应用的练习题 二叉树的存储结构顺序结构链式结构 树 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成的一个具有层次关系的集合。把它叫做…

语言模型及Word2vec与Bert简析

语言模型可以对一段文本的合理性概率进行估计,对信息检索,机器翻译,语音识别等任务有着重要的作用。就以前的学习笔记,本文简单总结了NLP语言模型word2vec和bert分享给大家,疏漏之处,望请指出, …

Go语言的简介和环境搭建

Go语言的简介和环境搭建 带你了解什么是Go语言 如何安装和配置Go的开发环境 静态强类型,编译型语言!!! 1.简介 1.1介绍 Go 也称为 Golang,两个是一个东西。谷歌弄得。创造者都是大佬,所以说这个编程语言很…

PSP - AlphaFold2 Multimer 的 Heteromer (异聚体) MSA 逻辑

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130733737 同源多聚体 (Homomer) 是由相同的蛋白质亚基组成的,而异源多聚体 (Heteromer) 是由不同的蛋白质亚基组成的。同源多聚体的亚基之间通常有对称的相…

BFT 最前线 | OpenAI开放网络浏览和插件;“360AI商店”上线;Bing市场份额不升反降;亚马逊机器人配送中心投产

原创 | BFT机器人 AI视界 TECHNOLOGY NEWS 01 OpenAI将向所有ChatGPT Plus用户推出网络浏览和插件 OpenAI将向所有ChatGPT Plus用户推出网络浏览和插件近日,OpenAI发文称,将在本周(5.15-5.21日)内向所有ChatGPT Plus用户推出网络…

【Python scikit-learn】零基础也能轻松掌握的学习路线与参考资料

Python是一种广泛使用的编程语言,随着数据科学领域的不断发展,Python成为了数据科学的主要工具之一。scikit-learn是Python中一款非常流行的机器学习库,它为广大科学家和工程师提供了一种简单而有效的方法来解决机器学习问题。 本文将从以下…

客服软件强攻略——改善客户自助服务

客户自助服务相对容易采用并集成到您现有的客户服务产品中。也就是说,任何自助服务计划都应该经过充分研究,跟踪明确的目标和成功指标,以确保其成功。 有效的自助服务通常可以通过软件工具形成,比如SaleSmartly(ss客服…

微服务保护(线程隔离、降级、熔断)

线程隔离 线程隔离有两种方式实现: 线程池隔离信号量隔离 线程池隔离 假设服务A依赖于服务B和服务C,那么服务A就会分别对服务B和服务C创建线程池,当有请求进来时不会使用服务A本身的线程,而是到对应的线程池中取一个线程来调用feign的客户…

ViLT论文精读笔记

ViLT论文精读笔记 0.摘要1.引言2.背景知识(小综述)2.1对VLP模型分类2.2模态的融合2.3融合前特征的抽取 3.模型方法3.1预训练目标函数:3.1.1 Image Text Matching:3.1.2 Masked Language Modeling3.1.3 Masked Image Modeling 3.2W…

本周刷题记录

截至周三刷了六道题 题目1: 这是个交互题,目前遇到的交互题都是用二分解决的。 本题使用二分精准定位拥有重量为2的石头的堆。 为避免时间超限,应该再输入数据时计算好前缀和。 二分过程中,如果哪边的重量总和不等于石头数&…

关键词采集软件-关键词自动生成器

网站关键词对于SEO优化至关重要,在搜索引擎排名和流量中扮演着重要的角色。而147seo关键词生成软件可以帮助用户更好地发现与他们的业务和目标相关的关键词和话题。其中的147SEO关键词挖掘软件是其核心功能之一,能够自动批量实时挖掘关键词和短语&#x…

day33_css

今日内容 零、 复习昨日 一、CSS 零、 复习昨日 见代码 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文…

以转账案例说明Spring事务

文章目录 1 Spring事务简介1.1 相关概念介绍1.2 转账案例-需求分析1.3 转账案例-环境搭建步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:创建JdbcConfig配置类步骤8:创建…

Istio零信任安全架构设计

主要分为几个模块 安装安全概念整体安全架构源码 1.安装istio (windows环境) windows安装Rancher的步骤 : https://docs.rancherdesktop.io/getting-started/installation, docker desktop开始面向中大型企业收费: https://baijiahao.baidu.com/s?id1709665495660071676&…

CVE-2022-39197(Cobalt Strike XSS <=4.7)漏洞复现(超详细)

0x00 漏洞概述 2022年09月22日,360CERT监测发现了Cobalt Strike远程代码执行漏洞,漏洞编号为CVE-2022-39197,漏洞等级:严重,漏洞评分:9.8   Cobalt Strike(也称CS)由美国Red Team开…

互联网内卷严重?你咋不看看其他行业呢?无非是三十晚上无月亮,大家都一样

一千个人眼中有一千个哈姆雷特,互联网行业就像一座围城,城外的人想进来,城内的人要么卷要么躺要么润 ​ 真实的感受你可以现在约几个面试体验一下。内卷到什么程度? 产品和运营岗,业务经验不完全对口简历都过不了&am…