博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux ln命令 - 建立文件/目录链接
阅读量:4965 次
发布时间:2019-06-12

本文共 1468 字,大约阅读时间需要 4 分钟。

1. 使用方式:ln [option] source_file dist_file 
                    -f 建立时,将同档案名删除. 
                    -i 删除前进行询问. 
                    ln -s abc cde 建立abc 的软连接 
                    ln abc cde 建立abc的硬连接,
2. 软链接与硬链接的区别(通俗):
                    硬链接可认为是一个文件拥有两个文件名;而软链接则是
                    系统新建一个链接文件,此文件指向其所要指的文件
ln -s /root/lntest/source/ /root/lntest/dist/
这里看到软链就是个快捷方式 
3. 软链接与硬链接的区别(讲解):
Linux 软连接与硬连接
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。
    连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。
    
不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。     
    
eg:
    ln -s source dist        # 建立软连接
  
  ln -s /mnt/hgfs/ /home/luo/     注意后面的“/” 是将目录里所有的文件链接过去,必须加上,否则,建立的目录显示颜色异常,还不能正常访问,如cd 进不去
    ln source dist            # 建立硬连接
    软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。
(1)软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。
(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.
(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。
备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/jamesf/p/4751479.html

你可能感兴趣的文章
IAAS、SAAS 和 PAAS 的区别、理解
查看>>
Java RMI详解
查看>>
idea设置条件断点
查看>>
6.【应急响应】Linux入侵排查思路
查看>>
windows32位系统 安装MongoDB
查看>>
C#中的扩展类的理解
查看>>
TypeScript--函数
查看>>
【转】谷歌大数据的三篇论文
查看>>
第三章编程练习题3.1
查看>>
删除重复数据只保留一条
查看>>
排序之快速排序(上)
查看>>
计算机端口大全
查看>>
如何使用BHO定制你的Internet Explorer浏览器
查看>>
Android中用文件初始化sqlite 数据库的文(一) (转)
查看>>
手写简化版SpringBoot
查看>>
Ruby 装pg的坑
查看>>
.NET泛型解析(上)
查看>>
(asp.net MVC学习)System.Web.Mvc.HtmlHelper学习及使用
查看>>
C# 给某个方法设定执行超时时间
查看>>
数三角形
查看>>