++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
标题: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. dataframe行变换为列

    新建一个 dataFrame : val conf = new SparkConf().setAppName("TTyb").setMaster("local" ...

  2. 一次composer错误使用引发的思考

    一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...

  3. django插入数据库错误:mysql的1267错误

    错误信息: django.db.utils.OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci,IM ...

  4. 旅行商问题(Traveling Salesman Problem,TSP)的+Leapms线性规划模型及c++调用

    知识点 旅行商问题的线性规划模型旅行商问题的+Leapms模型及CPLEX求解C++调用+Leapms 旅行商问题 旅行商问题是一个重要的NP-难问题.一个旅行商人目前在城市1,他必须对其余n-1个城 ...

  5. 101 - kube-scheduler源码分析 - k8s源码组织结构概览

    ps:本来应该先发这一篇,再开始讲cobra的,昨天不小心先把 cobra发出去了,今天补上源码概览~ 如上,我们下载好后切换到1.10版本的分支,项目目录结构是这样的(目录部分).有很多,我们先不纠 ...

  6. 【面试】Spring事务面试考点吐血整理(建议珍藏)

    Spring和事务的关系 关系型数据库.某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务. Spring很显然不是事务性资源,但是它可以管理事务性资源,所以Spring和 ...

  7. 初步认识Swiper_前端交互控制神器_滚动3D切换等特效简单制作

    前言: 本人在项目的工作中负责研发,页面及交互基本都是交给前端去做的.以前前端写的东西大概都知道,都是一些JS,CSS和HTML等的一些基本控制,都懂!但是今天前端突然做了一个具有特殊效果的DOM:页 ...

  8. [.NET] 使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复

    使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复 目录 一.前提 二.基本配置信息简析 三.配置服务器地址(URL) 四.请求处理 一.前提 先申请微信公众号的授权,找到或配置 ...

  9. C#--深入理解类型

    今日无事,回顾了一下C#基础知识,颇有收获,就自己的理解,写了这篇文章,如有不对,欢迎指正. C#中的类型可以分为两类:值类型与引用类型,如下图所示. 值类型通常被分配到线程的堆栈上,而引用类型则被分 ...

  10. Oracle的坑,你是否踩过?----安装篇

    作为一个职场的新人,之前都是接触Sql server 数据库比较多,Oracle这方面基本没有接触过,然后这次公司刚好有个项目用到了Oracle数据库,然后就打算学习一下这方面的知识.然后昨天安装Or ...