Linux文件类型和根目录结构

Linux文件类型和根目录结构

1.文件类型

字符文件类型说明
~普通文件类似于Windows的记事本
d目录文件类似于windows文件夹
c字符设备文件串行端口设备,顺序读写,键盘
b块设备文件可供存储的接口设备,随机读写,硬盘
p管道文件用于进程间的通信
s套接字文件通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
l符号链接又叫软链接,和原来文件不是同一个文件例如windows的快捷方式
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也叫inode)

Linux系统中软链接与硬链接的区别

1.定义与原理

  • 硬链接
    • 硬链接是多个文件名指向同一个 inode(索引节点)。可以理解为同一个文件有多个不同的文件名,它们都直接指向文件的存储位置。
    • 当创建硬链接时,实际上是为文件增加了一个新的文件名,而不是创建一个新的文件副本。
    • 例如,文件 /home/user/original.txt 有一个硬链接 /home/user/link1.txt,这两个文件名指向同一个存储位置和 inode。
  • 软链接(符号链接)
    • 软链接是一个独立的文件,它包含了指向另一个文件或目录的路径。可以看作是 Windows 中的快捷方式。
    • 当访问软链接时,系统会自动重定向到它所指向的目标文件或目录进行操作。
    • 例如,创建一个软链接 /home/user/soft_link.txt 指向 /home/user/original.txt,访问软链接时实际上是在访问目标文件。

2.文件属性

  • inode 编号

    • 硬链接与原文件具有相同的 inode 编号,这表明它们在文件系统中是同一个文件的不同名称。
    • 软链接有自己独立的 inode 编号,与目标文件不同。
  • 文件大小

    • 硬链接的文件大小与原文件相同,因为它们指向同一个存储位置。
    • 软链接的文件大小通常较小,它只包含指向目标文件的路径信息。

3.创建方式

  • 硬链接:使用 ln 命令创建,语法为 ln 源文件 硬链接文件。例如:ln /home/user/original.txt /home/user/link1.txt
  • 软链接:使用 ln -s 命令创建,语法为 ln -s 源文件 软链接文件。例如:ln -s /home/user/original.txt /home/user/soft_link.txt

4.对源文件的依赖

  • 硬链接
    • 相对独立于源文件。即使源文件名被删除,只要还有一个硬链接存在,文件的数据仍然可以访问。
    • 例如,删除 /home/user/original.txt,但 /home/user/link1.txt 仍然可以访问文件内容。
  • 软链接
    • 依赖于目标文件。如果目标文件被删除或移动,软链接将变为无效。
    • 例如,如果删除 /home/user/original.txt/home/user/soft_link.txt 将无法访问到文件内容,会出现错误提示。

5.跨文件系统

  • 硬链接:不能跨文件系统创建硬链接。因为不同的文件系统有不同的 inode 编号分配方式,无法在不同文件系统中为同一个文件创建多个名称。
  • 软链接:可以跨文件系统创建软链接,因为软链接只是包含了一个指向目标文件的路径,与文件系统的 inode 结构无关。

2.Linux系统的目录结构

2.1 FHS层级结构标准

  • 定义:

​ Filesystem Hierarchy Standard(FHS,文件系统层次结构标准)定义了 Linux 操作系统中文件和目录的组织方式。其主要目的是为了让不同的 Linux 发行版在文件系统布局上有一个统一的标准,以便提高软件的可移植性和用户在不同系统之间的操作便利性。

  • Linux目录结构的特点

    • 使用树形目录结构来组织和管理文件。

    • 整个系统只有一个根目录(树根),Linux的根目录用“/”表示

    • 其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可实现对这些分区的访问。

    在这里插入图片描述

  • 主要目录及其用途:

目录用途
/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/boot存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/bin存放基本的二进制可执行文件,这些文件对于系统的基本运行和恢复是至关重要的。
/sbin包含系统管理相关的二进制可执行文件。
/lib是库(library)英文缩写,存放系统的各种库文件
/lib64存放系统本身需要用到64位程序的共享函数库(library)
/usr一般用户程序安装所在的目录,用于安装各种应用程序
/opt该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、CorelWordPerfect,这可避免将文件分散至整个文件系统。
/user包含用户相关的程序和文件,是一个非常重要的目录。
/etc存放系统配置文件。
/var存放可变数据,如日志文件、邮件队列、打印队列等。
/run保存自系统启动以来描述系统信息的文件
/home每个用户在这个目录下都有一个自己的主目录,用于存放用户的个人文件和设置。
/root管理员用户(root)的主目录。
/mnt和/media以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点
/tmp用来存放不同程序执行时产生的临时文件
/srvsrv 是服务(server)的简写,服务启动之后需要访问的数据目录
/sys本目录是将内核的一些信息映射文件,以供应用程序所用
/dev存放设备文件,代表系统中的硬件设备。
/proc这是一个虚拟文件系统,提供了关于系统运行状态和进程信息的接口。可以在这个目录下获取系统信息,详解网址:https://mp.weixin.qq.com/s/4WUJ
  • 注意:

    • 系统自带的目录不要随意删除

    • 目录的名称是区分大小写的

    • FHS标准并不是一种强制约束标准,但是一种经验的总结,应灵活使用

2.2 路径

路径是用于指定文件或目录在文件系统中的位置的一种表示方式

  • 路径的组成部分

    • 目录名称:

      • 路径中的每个部分都是一个目录名称,用斜杠(/)分隔。

      • 例如,在路径 /home/user/documents 中,home、user 和 documents 都是目录名称。

    • 文件名:

      • 在路径的最后部分可以是一个文件名,表示具体的文件。

      • 例如,在路径 /home/user/documents/file.txt 中,file.txt 是文件名。

  • 路径的类型

    • 绝对路径:
      • 绝对路径从根目录(/)开始,完整地描述了文件或目录在文件系统中的位置。
      • 例如,/home/user/documents/file.txt 是一个绝对路径,它明确指出了文件 file.txt 位于根目录下的 home 目录中的 user 目录下的 documents 目录中。
      • 无论当前工作目录在哪里,绝对路径都能准确地定位到目标文件或目录。
    • 相对路径:
      • 相对路径是相对于当前工作目录的位置来指定文件或目录的路径。
      • 例如,如果当前工作目录是 /home/user,那么相对路径 documents/file.txt 实际上指的是 /home/user/documents/file.txt。
      • 相对路径更加简洁,特别是当在与当前工作目录相关的位置进行操作时。

2.3 工作目录

  • 用户当前所处的位置,使用 pwd 命令查看
  • 更改当前的工作目录,即切换目录: cd 路径
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /
[root@localhost /]# pwd
/
# 回到当前用户的家(主)目录
[root@localhost /]# cd ~
[root@localhost ~]# pwd
/root
# 回到当前目录的上一级目录
[root@localhost ~]# cd ..
# 切换到之前的目录
[root@localhost /]# cd -
/root
# 回到当前目录
[root@localhost ~]# cd .

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

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

相关文章

jmeter中请求参数:Parameters、Body Data的区别

使用jmeter发送请求,常常要伴随传递参数。有两种请求参数: Parameters, Body Data, 它们的使用方式有很大不同。 先看下get和post请求的区别。 get请求:顾名思义是从服务器获取资源。 post请求:顾名思义是往服务器提交要处理的数据。 直观…

【算法刷题指南】双指针

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

JavaSE要点 1】Java基础

目录 一、编译和运行 二、JDK,JRE和JVM 三、Java中的基本类型 1. 基本类型的大小 四、JVM内存模型 1. 内存模型 五、JVM虚拟机的组成 1. 虚拟机的5个组成部分 2. 虚拟机栈 3. 栈帧 六、值传递和引用传递 七、变量的默认值 八、String的不可变 九. 包装类和常量池(-…

基于SSM的网上购物系统的设计与实现

技术介绍 本系统运用了JSP技术、SSM框架、B/S架构和myspl数据库 MySQL 介绍 MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注…

【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层顺序调整功能

目录 引言一、为什么要开发图层顺序调整功能二、开发思路整理1. 拖拽库方案选择2. cesium图层api查询 三、代码编写1. 编写拖拽组件代码2. 修改原有图层管理代码2.1 图层加载移除的调整2.2 图层顺序与拖拽列表的矛盾 3. 编写图层移动代码 四、总结 引言 本教程主要是围绕Cesium…

如何解决 PyQt5 中使用 QtNetwork后使用pyinstaller 打包后网络请求失败的问题

在使用 PyQt5 开发应用程序时,我遇到一个问题:使用 QtNetwork 进行网络通信,在通过 PyInstaller 打包后,应用程序无法正常进行网络请求。经过一些研究和尝试,我找到了解决方案,并记录如下: 问题…

力扣209-长度最小的子数组-滑动窗口思想

题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&am…

TCP单包数据大于1460字节会被拆包的问题

关于TCP单包数据大于1460字节会被拆包的问题 1、问题背景: 最近在用STM32W5500做项目,需要STM32通过TCP协议发送数据到上位机并显示。当数据量小的时候上位机显示正常,一旦数据量大过大上位机就会出现数据丢失的情况,甚至数据直接…

LeetCode392:判断子序列

题目链接&#xff1a;392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {int len1 s.size();int len2 t.size();int result 0;vector<vector<int> > dp(len1 …

通过滑动控制 图片3d(多张视频序列帧图片) 展示

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>控制图片变化</title> <style>img {…

深入理解InnoDB底层原理:从数据结构到逻辑架构

💡 无论你是刚刚踏入编程世界的新人,还是希望进一步提升自己的资深开发者,在这里都能找到适合你的内容。我们共同探讨技术难题,一起进步,携手度过互联网行业的每一个挑战。 📣 如果你觉得我的文章对你有帮助,请不要吝啬你的点赞👍分享💕和评论哦! 让我们一起打造…

ctfshow(259->261)--反序列化漏洞--原生类与更多魔术方法

Web259 进入界面&#xff0c;回显如下&#xff1a; highlight_file(__FILE__);$vip unserialize($_GET[vip]); //vip can get flag one key $vip->getFlag();题干里还提示了网站有一个flag.php界面&#xff0c;源代码如下&#xff1a; $xff explode(,, $_SERVER[HTTP_X…

k8s_Pod健康检查

Kubernetes 3种探针介绍 LivenessProbe&#xff08;存活探针&#xff09; LivenessProbe 用于检查容器是否仍然活着。如果探针检测到容器已经失去响应&#xff0c;Kubernetes 将重启该容器。这通常用来修复由于内部状态错误或死锁引起的程序失效问题。 作用&#xff1a;检测容器…

常见的音视频格式介绍

目录 aac格式介绍&#xff08;ADTS&#xff09;h264格式分析FLV和MP4格式介绍 aac格式介绍&#xff08;ADTS&#xff09; aac的格式有两种&#xff1a;ADIF不常用&#xff0c;ADTS是主流&#xff0c;所以这里主要讲解ADTS。简单来说&#xff0c;ADTS可以在任意帧解码&#xff…

校园表白墙源码修复版

此校园表白墙源码基于thinkphp&#xff0c;因为时代久远有不少bug&#xff0c;经本人修复已去除大部分bug&#xff0c;添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…

基于机器学习的个性化电影推荐系统【源码+安装+讲解+售后+文档】

【1】系统介绍 研究背景 随着互联网技术的迅速发展&#xff0c;数字娱乐内容特别是电影和电视剧的数量急剧增加。用户在享受丰富内容的同时&#xff0c;也面临着选择困难的问题&#xff0c;即“信息过载”。传统的搜索和分类方法已经无法满足用户日益增长的个性化需求。与此同…

多款云存储平台存在安全漏洞,影响超2200万用户

据苏黎世联邦理工学院研究人员Jonas Hofmann和Kien Tuong Turong的发现&#xff0c;端到端加密&#xff08;E2EE&#xff09;云存储平台存在一系列安全问题&#xff0c;可能会使用户数据暴露给恶意行为者。在通过密码学分析后&#xff0c;研究人员揭示了Sync、pCloud、Icedrive…

一位Go开发者的深度访谈:从进阶到实战,《Let’s Go Further!》如何开拓Go语言新世界

读者&#xff1a;我最近在学习Go&#xff0c;发现构建API和Web应用方面还是有很多挑战&#xff0c;尤其是需要兼顾代码架构、性能和扩展性。您作为一位Go语言技术专家&#xff0c;怎么看《Let’s Go Further!》这本书呢&#xff1f; 专家&#xff1a;这本书确实很有意思。《Le…

【npm的软硬原理】

npm link用来在本地项目和本地npm模块之间建立连接&#xff0c;可以在本地进行模块测试 具体用法&#xff1a; 1. 项目和模块在同一个目录下&#xff0c;可以使用相对路径 npm link …/module 2. 项目和模块不在同一个目录下 cd到模块目录&#xff0c;npm link&#xff0c…

三维管线管网建模工具MagicPipe3D V3.5.3

经纬管网建模系统MagicPipe3D&#xff0c;本地离线参数化构建地下管网三维模型&#xff08;包括管道、接头、附属设施等&#xff09;&#xff0c;输出标准3DTiles、Obj模型等格式&#xff0c;支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…