++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
标题:Linux操作系统的文件链接
内容:文件链接
时间:2019年4月15日
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1. 文件系统文件存储方式
例如:/dir1000/file100.txt
--------------------------------------------------------------------------
inode                   | block
--------------------------------------------------------------------------
100(dir1000)       | file100.txt-->200以及访问权限等等信息
--------------------------------------------------------------------------
200(file001.txt)   | file100.txt文件中的真正的内容
--------------------------------------------------------------------------
访问过程:
访问文件所在的目录,找到文件对应的inode节点号
再通过inode节点号,到文件系统中查看真正的文件内容

2. 符号链接(软链接)与硬链接
2.1 符号链接与软链接举例
[root@test ~]# mkdir /dir1000
[root@test ~]# mkdir /dir2000
[root@test ~]# mkdir /dir3000
[root@test ~]# touch /dir1000/file001
[root@test ~]# ln /dir1000/file001 /dir2000/file002
[root@test ~]# ln -s /dir1000/file001 /dir3000/file003 //符号链接
[root@test ~]# ll /dir1000/file001 /dir2000/file002 /dir3000/file003
-rw-r--r-- 2 root root 0 Apr 15 00:16 /dir1000/file001
-rw-r--r-- 2 root root 0 Apr 15 00:16 /dir2000/file002
lrwxrwxrwx 1 root root 16 Apr 15 00:17 /dir3000/file003 -> /dir1000/file001

2.2 符号链接与硬链接存储方式
符号链接:
--------------------------------------------------------------------------
inode                   | block
--------------------------------------------------------------------------
100(dir1000)       | file001->200以及访问权限等等信息
--------------------------------------------------------------------------
200(file001)        | file001文件中的真正的内容
--------------------------------------------------------------------------
300(dir3000)       | file003->400
--------------------------------------------------------------------------
400(file003)        | file003文件内容(/dir1000/file001)
--------------------------------------------------------------------------
符号链接访问过程:
访问软链接文件的所在的目录并获取软链接文件的inode
访问软链接文件并获取原文件所在的位置
访问软链接文件所指向原文件的父级目录,判断 是否具备访问权限,获取原文件的inode
访问软链接指向的原文件内容

硬链接:
--------------------------------------------------------------------------
inode                   | block
--------------------------------------------------------------------------
100(dir1000)       | file001->200以及访问权限等等信息
--------------------------------------------------------------------------
200                      | 文件中的真正的内容
--------------------------------------------------------------------------
300(dir3000)       | file003->200
--------------------------------------------------------------------------
硬链接访问过程:
访问硬链接文件所在目录并获取文件的inode节点号,判断是否具备访问权限
根据获取的inode节点号读取文件的真正的内容

2.3 符号链接与硬链接的特性
符号链接:
符号链接的功能等价于Windows操作系统中的快捷方式。
符号链接可以支持文件和目录进行链接。
符号链接可以跨文件系统进行链接。
硬链接:
硬链接与原文件指向同一inode节点,不存在等级之分。
硬链接的功能等价复制但有区别与复制。
文件路径过长时便于文件等访问。
防止重要的文件误删除。
硬链接不能夸文件系统创建。
目录不能创建硬链接。

2.4 符号链接注意事项
文件或目录做符号链接时一定要注意使用绝对路径,否则可能导致找不到或找错文件。
[root@test ~]# mkdir /dir4000
[root@test ~]# mkdir /dir5000
[root@test ~]# mkdir /dir6000
[root@test ~]# touch /dir4000/file004
[root@test ~]# echo 'file004' >/dir4000/file004
[root@test ~]# touch /dir5000/file004
[root@test ~]# echo '/dir5000/file004' >/dir5000/file004
[root@test ~]# cd /dir4000/
[root@test dir4000]# ln -s file004 /dir5000/file004_link
[root@test dir4000]# ln -s file004 /dir6000/file004_link
[root@test dir4000]# cd
[root@test ~]# cat /dir4000/file004
file004
[root@test ~]# cat /dir5000/file004_link
/dir5000/file004
[root@test ~]# cat /dir6000/file004_link
cat: /dir6000/file004_link: No such file or directory

目录做符号链接时删除时不要加最后的斜杠,否则删除的将时目录下的内容。
[root@test ~]# mkdir /dir100
[root@test ~]# mkdir /dir200
[root@test ~]# touch /dir100/file100
[root@test ~]# touch /dir200/file200
[root@test ~]# ln -s /dir100/ /dir300
[root@test ~]# ln -s /dir200/ /dir400
[root@test ~]# rm -rf /dir300/ //删除的是目录下的内容
[root@test ~]# ll /dir100/
total 0
[root@test ~]# ll -d /dir300
lrwxrwxrwx 2 root root 4096 Apr 15 00:53 /dir100/ -> /dir300/
[root@test ~]# rm -rf /dir400 //删除的链接文件
[root@test ~]# ll /dir200/
-rw-r--r-- 1 root root 0 Apr 15 00:53 file200
[root@test ~]# ll /dir400
ls: cannot access /dir400: No such file or directory

Linux操作系统的文件链接的更多相关文章

  1. Linux操作系统的文件查找工具locate和find命令常用参数介绍

    Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具  locate命 ...

  2. Linux文件链接hard link与symbolic link

    Linux中文件链接有两种方式,一种是hard link,又称为硬链接:另一种是symbolic link,又称为符号链接.要区分两者的不同要回顾Linux常用的ext2文件系统.这种文件系统使用in ...

  3. Linux链接库四(多个库文件链接顺序问题)

    最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于unde ...

  4. 转: linux文件链接(软链接和硬链接)

    链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic l ...

  5. Linux下的链接文件

    整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ Linux中的链接文件分为两种:硬链接和软链接.软链接(symbol ...

  6. linux文件链接

    我的github,欢迎关注,分享知识与技术 链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(HardLink)和软链接(Soft Link), ...

  7. NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理

    Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内 ...

  8. linux文件管理之链接文件

    文件链接 ====================================================================================软链接 或 符号链接硬 ...

  9. (转载)使用 udev 高效、动态地管理 Linux 设备文件

    概述: Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等.通过观察这些设备的内核设备名称,用户通常能知道这些是什么类型的设备,但是不知道哪一个设备是 ...

随机推荐

  1. 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 二九║ Nuxt实战:异步实现数据双端渲染

    回顾 哈喽大家好!又是元气满满的周~~~二哈哈,不知道大家中秋节过的如何,马上又是国庆节了,博主我将通过三天的时间,给大家把项目二的数据添上(这里强调下,填充数据不是最重要的,最重要的是要配合着让大家 ...

  2. mysql error 2005 - Unknown MySQL server host 'localhost'(11001)

    有的时候偶尔会出现这个问题 2005 Unknown MySQL server host 'localhost' (11001),刚开始重启电脑ok了,但是不能每次出现这个问题就重启电脑吧,太麻烦了, ...

  3. Java注解(Annotation):请不要小看我!

    Java注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分.注解对于代码的运行效果没有直接影响. 网络上对注解的解释过于严肃.刻板,这并不是我喜欢的风格.尽管这样的 ...

  4. “挑三拣四”地学一学Java I/O

    古人云:“读书破万卷,下笔如有神”.也就是说,只有大量的阅读,写作的时候才能风生水起——写作意味着输出(我的知识传播给他人),而读书意味着输入(从他人的知识中汲取营养). 对于Java I/O来说,I ...

  5. 进行API开发选gRPC还是HTTP APIs?

    上一篇文章我带着大家体验了一把<ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)>,如果有兴趣的可以点击链接进行查看,相信跟着做的你,也是可以跑起来的.这篇文章我们将一 ...

  6. java~google样式检查和命名规范

    对于代码的样式和各种元素的命名都是我们架构师需要考虑的,目前在java世界里,比较流行使用java的规范,包括了代码样式检查. 代码样式检查插件 样式文件xml google命名规范 一 代码样式检查 ...

  7. 全文检索-Elasticsearch (四) elasticsearch.net 客户端

    本篇摘自elasticsearch.net search入门使用指南中文版(翻译) 原文:http://edu.dmeiyang.com/book/nestusing.html elasticsear ...

  8. Windows Server 2012 R2安装SqlServer 2016

    1.系统安装 微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作 ...

  9. Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)

    JVM运行时内存结构回顾 在JVM相关的介绍中,有说到JAVA运行时的内存结构,简单回顾下 整体结构如下图所示,大致分为五大块 而对于方法区中的数据,是属于所有线程共享的数据结构 而对于虚拟机栈中数据 ...

  10. SpringBoot系列——Spring-Data-JPA(究极进化版) 自动生成单表基础增、删、改、查接口

    前言 我们在之前的实现了springboot与data-jpa的增.删.改.查简单使用(请戳:SpringBoot系列——Spring-Data-JPA),并实现了升级版(请戳:SpringBoot系 ...