这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,
具体用法是:ln -s 源文件 目标文件。
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbolic)的意思。这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。  -f : 链结时先将与 dist 同档名的档案删除  -d : 允许系统管理者硬链结自己的目录  -i : 在删除与 dist 同档名的档案时先进行询问  -n : 在进行软连结时,将 dist 视为一般的档案  -s : 进行软链结(symbolic link)  -v : 在连结之前显示其档名  -b : 将在链结时会被覆写或删除的档案进行备份  -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾  -V METHOD : 指定备份的方式  --help : 显示辅助说明  --version : 显示版本

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

2.通过实验加深理解
[oracle@Linux]$ vi test.log                         #创建一个测试文件f1
[oracle@Linux]$ ln test.log test1.log           #创建f1的一个硬连接文件test1.log
[oracle@Linux]$ ln -s test.log test2.log       #创建f1的一个符号连接文件test2.log
[oracle@Linux]$ ls -li                                 # -i参数显示文件的inode节点信息

两种链接的区别:

硬链接文件有两个限制
   1)、不允许给目录创建硬链接;
   2)、只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。
       对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。

这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

那么我们就可以这样理解:硬连接指通过索引节点来进行的连接,其作用是允许一个文件拥有多个有效路径名,能够达到误删除的作用。

其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它

的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。文件才会被真正删除。

注:保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index即I节点)。          

软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

转载于:https://www.cnblogs.com/searcherY/p/6262716.html

linux 创建连接命令 ln -s 软连接相关推荐

  1. linux 创建连接命令 ln -s 软链接

    linux 创建连接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln ...

  2. Linux创建连接命令 ln -s创建软连接

    当在不同目录使用相同文件时,可以使用ln命令链接,避免了重复占用磁盘空间. 例如:ln -s /bin/less /usr/local/bin/less需要注意:第一,ln命令会保持每一处链接文件的同 ...

  3. Linux 创建(删除)连接命令 ln -s 软连接

    这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件 不论是硬连结或软链结 ...

  4. linux建立空文件的命令,linux创建文件命令

    linux系统下可以通过命令来创建新的文件.那么具体使用到哪个命令呢?下面由学习啦小编为大家整理了linux创建文件的相关命令,希望对大家有帮助! 一.linux创建文件命令 linux创建文件命令1 ...

  5. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  6. Linux中创建组的命令,linux创建用户组命令

    Linux 系统是下可以通过命令创建用户,当然也可以创建用户组,下面由学习啦小编为大家整理了linux创建用户组命令的相关知识,希望对大家有帮助! linux下创建用户组命令--groupadd命令 ...

  7. linux建立用户帐号的命令,有关Linux创建用户命令的详细讨论

    Linux系统用户的创建不同于windows系统,这里陈述一下Linux创建用户的命令.包括创建用户,修改密码,修改信息,新建群组. Linux创建用户命令1:创建新用户 useradd命令(也可以使 ...

  8. linux中的ln属性,linux 常用基础命令 ln 详细介绍

    命令介绍: ln是linux中又一个非常重要命令,ln是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我 ...

  9. Linux网络连接命令

    目录 1. hostname 2. ping 3. ifconfig 4. iwconfig 5. nslookup 6. traceroute 7. finger 8. telnet 9. etht ...

最新文章

  1. 为什么很多人喜欢把软件装在D盘,而不是系统盘C
  2. 【LSTM】基于LSTM网络的人脸识别算法的MATLAB仿真
  3. 72. Leetcode 99. 恢复二叉搜索树 (二叉搜索树-中序遍历类)
  4. JavaScript——仿键盘打字输入动画效果DEMO
  5. 关于JavaScript,这10条血与泪的建议大家一定要看
  6. 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
  7. CPU8085 8086名字的由来
  8. asp.net mvc 实现上传文件带进度条
  9. LayoutInflater(二)
  10. 小米路由pro php,完全拆解小米路由器Pro:无接口,预加硬盘无望
  11. swiper 用了effect:'fade', 切换效果 一定要用 参数crossFade 否则多个slide会叠再一起
  12. python编写简易木马程序_中国骇客云教你使用Python编写木马程序
  13. 使用MFC绘制一些简单图形
  14. 【微前端开发环境下,加载远程子应用的实战。】
  15. python 从大到小循环_Python循环小实例----猜大小
  16. 5G/NR SSB与PRACH occasion如何关联?
  17. 英雄传奇-1.专用浏览器问题
  18. RT-Thread进阶之低功耗PM组件应用笔记
  19. Android 自动化测试——monkey的使用
  20. sin的导数为cos的几何和公式证明

热门文章

  1. Android开发学习笔记:Gallery和GridView浅析
  2. C++虚函数的实现方式
  3. /proc/meminfo 学习
  4. 深入理解C++重载函数
  5. linux下TCP通信简单实例
  6. corosync+pacemaker+crmsh配置高可用集群。
  7. 转载:赶集网部门老大回应热帖《我在赶集网的两个月》
  8. Java Ajax: DWR
  9. 手工实现字节对齐 及 代码质量思考
  10. ASP.NET 2.0 – 善用DataSourceMode属性