当前位置: 首页 > news >正文

Linux文件链接

目录

软链接

硬链接


Linux中的链接分为软链接和硬链接两种链接方式,至于什么是链接,暂且可以按照Windows中的快捷方式来理解。其中,Linux中是通过ln指令创建链接的,详见:ln命令 – Linux命令大全

软链接

软连接的创建方式:

 ln -s [参数] [源文件或目录] [目标文件或目录]

其中,文件或目录最好使用绝对地址,如果没有规定地址,那么默认就是在当前目录下。

例如:

ln -s myproc proc

就表示在当前目录下创建一个名为proc,myproc的软连接。

不光是文件,目录也可以进行软链接,用法相同,这里就不再演示了。

要注意,软连接是一份单独的文件,有属于他自己的inode,软链接文件和原文件的关系就好像是指针与变量一样。

硬链接

我们在使用 ls 指令查看文件信息时的这串数字就是这个文件的硬链接数。

创建硬链接的方法与软连接类似,就是去掉ln中的-s参数即可:

 ln [参数] [源文件或目录] [目标文件或目录]

创建硬链接时,文件系统会在目录中添加一个新的目录项,并将新目录项指向与原始文件相同的inode。即新建一个inode与文件名之间的映射信息,这样就创建了一个新的文件名指向相同的文件数据。因此,硬链接并不是将文件的内容复制一份,而是共享相同的文件内容和inode。这种共享的机制使得硬链接能够节省磁盘空间,并且当你修改一个硬链接所指向的文件时,其他硬链接也会受到影响,因为它们都指向同一个inode。

特别的,每一个目录下都会有两个特殊的文件,分别是 和 .. 。其中 . 表示的是当前目录,.. 表示的是上级目录。而这两个 . .. 就是对应目录的硬链接。所以硬链接数,其实就是相同文件名的目录项的个数。所以新目录创建之后,. 的硬连接数总是2。

特别的,为了安全起见,操作系统并不允许我们对目录进行手动指定硬链接,只能由操作系统自动建立硬链接。这是因为,我们知道Linux操作系统的文件结构是一种树状结构,如果肆意对目录使用硬链接,很可能会出现在某一个区间出现目录树的环状问题。

内容补充

  1. 软链接又叫符号链接,类似于Windows中的快捷方式。
  2. 不管是软链接还是硬链接,最好都统一使用绝对路径。
  3. ln指令是创建链接,而取消链接则需要使用unlink指令,用法为unlink+链接名。unlink命令用于系统调用函数unlink去删除指定的文件,和rm命令作用一样,都是删除文件。只不过一个是系统调用,一个是系统指令。
  4. 软链接的本质是一个单独的文件,相当于一个指针,指向了目标文件。硬链接的本质是一个目录项,是原文件的一个别名。
  5. 软连接可以链接目录,而硬链接不可以链接目录。
  6. 软链接可以跨文件系统进行连接,硬链接不可以。这是因为不同分区有可能有不同文件系统,就算系统相同,也会导致节点号有歧义冲突,因此硬链接不能跨分区建立。而软链接与文件系统无关,只是一种快捷方式,所以并无影响。


http://www.mrgr.cn/news/4199.html

相关文章:

  • 国内用户快速部署Scoop@一键加速安装scoop@Deploy-ScoopForCNUser
  • 权威解读!中国数字经济发展指数报告2023(PDF限免下载)
  • python创建项目环境及项目打包
  • 微软AI人工智能认证有哪些?
  • [游戏开发] LuaTable转string存读二进制文件
  • 数据结构(邓俊辉)学习笔记】优先级队列 04——完全二叉堆:插入与上滤
  • vue2 动态组件
  • 【Qt】输入类控件QLineEdit
  • Springboot3 HttpUtil post、get请求
  • 【操作系统 / 系统编程】2025 秋招超详细复习指南 - 基于 Linux 环境的全面复习 - 持续更新(目前1.3w字)
  • presto 分页
  • Element-ui table进阶使用
  • 设计模式六大原则(四)--接口隔离原则
  • 如何使用AWS EC2资源?
  • 【经典算法】BFS_最短路问题
  • 将 hugo 博客搬迁到服务器
  • javaEE中自定义注解以及注解的解析
  • 【HTML】从0开始构建HTML页面
  • 探索Ruby在物联网世界的无限可能:智能连接与创新应用
  • 高校迎新系统app/基于android的高校迎新系统的设计与实现