Linux下ln命令使用

n是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间


1.命令格式:

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


2.命令功能:

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

软链接:

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接

4.软链接可以对目录进行链接

硬链接:

1.硬链接,以文件副本的形式存在。但不占用实际空间。

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建


这里有两点要注意:

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。


3.命令参数:

必要参数:

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理过程

选择参数:

-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”

-V “-V<备份方式>”或“--version-control=<备份方式>”

--help 显示帮助信息

--version 显示版本信息


4.使用实例:

实例1:给文件创建软链接

命令:

ln -s log2013.log link2013

输出:

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. [root@localhost test]# ll  
  2. -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log  
  3. [root@localhost test]# ln -s log2013.log link2013  
  4. [root@localhost test]# ll  
  5. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  6. -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log  

说明:

为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效


实例2:给文件创建硬链接

命令:

ln log2013.log ln2013

输出:

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. [root@localhost test]# ll  
  2. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  3. -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log  
  4. [root@localhost test]# ln log2013.log ln2013  
  5. [root@localhost test]# ll  
  6. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  7. -rw-r--r-- 2 root bin      61 11-13 06:03 ln2013  
  8. -rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log  

说明:

为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同


实例3:接上面两实例,链接完毕后,删除和重建链接原文件

命令:

输出:

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. [root@localhost test]# ll  
  2. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  3. -rw-r--r-- 2 root bin      61 11-13 06:03 ln2013  
  4. -rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log  
  5. [root@localhost test]# rm -rf log2013.log   
  6. [root@localhost test]# ll  
  7. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  8. -rw-r--r-- 1 root bin      61 11-13 06:03 ln2013  
  9. [root@localhost test]# touch log2013.log  
  10. [root@localhost test]# ll  
  11. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  12. -rw-r--r-- 1 root bin      61 11-13 06:03 ln2013  
  13. ---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log  
  14. -rw-r--r-- 1 root root      0 12-07 16:19 log2013.log  
  15. [root@localhost test]# vi log2013.log   
  16. 2013-01  
  17. 2013-02  
  18. 2013-03  
  19. 2013-04  
  20. 2013-05  
  21. 2013-06  
  22. 2013-07  
  23. 2013-08  
  24. 2013-09  
  25. 2013-10  
  26. 2013-11  
  27. 2013-12[root@localhost test]# ll  
  28. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  29. -rw-r--r-- 1 root bin      61 11-13 06:03 ln2013  
  30. -rw-r--r-- 1 root root     96 12-07 16:21 log2013.log  
  31. [root@localhost test]# cat link2013   
  32. 2013-01  
  33. 2013-02  
  34. 2013-03  
  35. 2013-04  
  36. 2013-05  
  37. 2013-06  
  38. 2013-07  
  39. 2013-08  
  40. 2013-09  
  41. 2013-10  
  42. 2013-11  
  43. 2013-12  
  44. [root@localhost test]# cat ln2013   
  45. hostnamebaidu=baidu.com  
  46. hostnamesina=sina.com  
  47. hostnames=true  

说明:

1.源文件被删除后,并没有影响硬链接文件;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在

2.重建源文件后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效


实例4:将文件链接为另一个目录中的相同名字

命令:

ln log2013.log test3

输出:

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. [root@localhost test]# ln log2013.log test3  
  2. [root@localhost test]# ll  
  3. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  4. -rw-r--r-- 1 root bin      61 11-13 06:03 ln2013  
  5. -rw-r--r-- 2 root root     96 12-07 16:21 log2013.log  
  6. [root@localhost test]# cd test3  
  7. [root@localhost test3]# ll  
  8. -rw-r--r-- 2 root root 96 12-07 16:21 log2013.log  
  9. [root@localhost test3]# vi log2013.log   
  10. 2013-01  
  11. 2013-02  
  12. 2013-03  
  13. 2013-04  
  14. 2013-05  
  15. 2013-06  
  16. 2013-07  
  17. 2013-08  
  18. 2013-09  
  19. 2013-10[root@localhost test3]# ll  
  20. -rw-r--r-- 2 root root 80 12-07 16:36 log2013.log  
  21. [root@localhost test3]# cd ..  
  22. [root@localhost test]# ll  
  23. lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log  
  24. -rw-r--r-- 1 root bin      61 11-13 06:03 ln2013  
  25. -rw-r--r-- 2 root root     80 12-07 16:36 log2013.log  
  26. [root@localhost test]#  

说明:

在test3目录中创建了log2013.log的硬链接,修改test3目录中的log2013.log文件,同时也会同步到源文件


实例5:给目录创建软链接

命令:

ln -sv /opt/soft/test/test3 /opt/soft/test/test5

输出:

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. [root@localhost test]# ll  
  2. drwxr-xr-x 2 root root   4096 12-07 16:36 test3  
  3. drwxr-xr-x 2 root root   4096 12-07 16:57 test5  
  4. [root@localhost test]# cd test5  
  5. [root@localhost test5]# ll  
  6. lrwxrwxrwx 1 root root 5 12-07 16:57 test3 -> test3  
  7. [root@localhost test5]# cd test3  
  8. -bash: cd: test3: 符号连接的层数过多  
  9. [root@localhost test5]#   
  10. [root@localhost test5]#   
  11. [root@localhost test5]# ll  
  12. lrwxrwxrwx 1 root root 5 12-07 16:57 test3 -> test3  
  13. [root@localhost test5]# rm -rf test3  
  14. [root@localhost test5]# ll  
  15. [root@localhost test5]# ln -sv /opt/soft/test/test3 /opt/soft/test/test5  
  16. 创建指向“/opt/soft/test/test3”的符号链接“/opt/soft/test/test5/test3”  
  17. [root@localhost test5]# ll  
  18. lrwxrwxrwx 1 root root 20 12-07 16:59 test3 -> /opt/soft/test/test3  
  19. [root@localhost test5]#   
  20. [root@localhost test5]# cd test3  
  21. [root@localhost test3]# ll  
  22. 总计 4  
  23. -rw-r--r-- 2 root root 80 12-07 16:36 log2013.log  
  24. [root@localhost test3]# touch log2014.log  
  25. [root@localhost test3]# ll  
  26. 总计 4  
  27. -rw-r--r-- 2 root root 80 12-07 16:36 log2013.log  
  28. -rw-r--r-- 1 root root  0 12-07 17:05 log2014.log  
  29. [root@localhost test3]# cd ..  
  30. [root@localhost test5]# cd ..  

说明:

1.目录只能创建软链接

2.目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误

3.在链接目标目录中修改文件都会在源文件目录中同步变化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DPM 2012 SP1---安装并部署DPM 2012 SP1服务器

实验拓扑图&#xff1a;一、前提条件&#xff1a;需要在DPM2012 SP1服务器上完成以下操作&#xff1a;1.DPM服务器加入域&#xff08;使用域管理员登陆DPM2012 SP1服务器&#xff09;2.准备存储磁盘&#xff08;新添加一块硬盘&#xff09;3.关闭防火墙服务&#xff08;DPM服务…

Linux下test命令使用

test命令格式&#xff1a; [cpp] view plain copy test condition 通常&#xff0c;在if-then-else语句中&#xff0c;用[]代替&#xff0c;即[ condition ]。注意&#xff1a;方括号两边都要用空格。 1、数值比较 比 较 描 述 ---------------------------------------…

用Mysql网页式管理工具安全地访问数据库的方法

2019独角兽企业重金招聘Python工程师标准>>> 用Mysql网页式管理工具安全地访问数据库的方法 在使用通达OA系统时很多用户需要借助Mysql网页式管理工具进入后台数据库去查看数据&#xff0c;进行一些相应的操作。但是大多数时候用户安装完该工具后都是直接进入后台数…

Linux 下的DMA浅析

DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来&#xff0c;从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。 一、DMA控制器硬件结构 DMA允许外围设备…

从值栈中获取数据

使用struts2的标签ognl表达式获取值栈数据 <s:property value"ognl表达式"/> 一、获取字符串 示例 打印后台string变量的值 jsp页面 Java代码 二、获取对象 示例 打印user对象的userName与userPwd的值 jsp页面 java代码 三、获取list集合 Java代码 1.通过list[…

SQL 事务

事务的acid理解简介ACID&#xff0c;是指在可靠数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;事务(transaction)所应该具有的四个特性&#xff1a;原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isola…

网络协议复习

不同协议所属的层次如下图&#xff1a; IP IP地址一开始是分类编址&#xff0c;到了20世纪90年代更换为无分类编址。分类编址时IP地址共有五类ABCDE。对于ABC类地址&#xff0c;IP地址都可以划分为网络标识和主机标识。从一个IP地址中提取网络地址要用网络掩码和IP地址进行与运…

CSDN-markdown编辑器使用手册

Markdown手册欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也…

Office 365身份认证管理-添加并验证联合认证域

首先需要安装MicrosoftOnlineServicesSign-inAssistant接受许可并安装安装完成接着安装WindowsAzureActiveDirectoryModuleforWindowsPowerShell安装程序启动接受许可设置安装路径开始安装安装完毕登陆并打开office365管理中心&#xff0c;选择添加一个域开始域添加向导输入我们…

codevs1040统计单词个数(区间+划分型dp)

1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入&#xff0c;且保证每行一定为20个)。要求将此字母串分成k…

翻译词典推荐

前言 今天在看一个API&#xff0c;遇到一些生词不会&#xff0c;花了些时间在选择词典上面&#xff0c;做个总结。 我的经历 先说说我使用词典的经历吧&#xff1a; 无网络条件&#xff1a;首选金山词霸&#xff0c;词霸本身1G多安装包配合将近2G的词典包&#xff0c;即便是断网…

用URLGather来管理和保存你的页面

下载链接&#xff1a;http://url-gather.software.informer.com/download/#downloading安装的过程简单&#xff0c;这里不一一叙述。安装成功后&#xff0c;找到软件安装的路径&#xff0c;如下&#xff1a;进入软件之后&#xff0c;你只要熟悉以下的功能就能轻松的管理你的网站…

Exynos4412 中断处理流程详解

Linux 中&#xff0c;当外设触发中断后&#xff0c;大体处理流程如下&#xff1a; a -- 具体CPU architecture相关的模块会进行现场保护&#xff0c;然后调用machine driver对应的中断处理handler&#xff1b; b -- machine driver对应的中断处理handler中会根据硬件的信息获取…

Exynos4412 中断驱动开发相关问题总结

1、Linux 中如何标识一个外部中断&#xff1f; 在linux kernel中&#xff0c;我们使用下面两个ID来标识一个来自外设的中断&#xff1a; a -- IRQ number CPU需要为每一个外设中断编号&#xff0c;我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID&#xff0c;和硬…

Exynos4412 IIC 总线驱动开发相关问题总结

一 、问题 1、IIC总线上的设备是怎么描述的&#xff1f; struct i2c_client{struct device dev;...};2、IIC总线上的驱动是怎么描述的&#xff1f; struct i2c_driver {struct device_driver driver;};3、IIC总线上的设备和驱动是怎么匹配的 1)、对于 Cortex - A8 通过driver…

sersync+rsync实现实时同步

在分布式应用中会遇到一个问题&#xff0c;就是多个服务器间的文件如何能始终保持一致。一种经典的办法是将需要保持一致的文件存储在NFS上&#xff0c;这种方法虽然简单方便但却将本来多点的应用在文件存储上又变成了单点&#xff0c;这违背了分布式应用部署的初衷。为了保留多…

Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发

前面在Exynos4412 IIC总线驱动开发&#xff08;一&#xff09;—— IIC 基础概念及驱动架构分析 中学习了IIC驱动的架构&#xff0c;下面进入我们的驱动开发过程 首先看一张代码层次图&#xff0c;有助于我们的理解 上面这些代码的展示是告诉我们&#xff1a;linux内核和芯片提…

Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

关于Exynos4412 IIC 裸机开发请看 &#xff1a;Exynos4412 裸机开发 —— IIC总线 &#xff0c;下面回顾下 IIC 基础概念 一、IIC 基础概念 IIC(Inter&#xff0d;Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。I…

Python 爬虫进阶一之爬虫框架概述

综述 爬虫入门之后&#xff0c;我们有两条路可以走。 一个是继续深入学习&#xff0c;以及关于设计模式的一些知识&#xff0c;强化 Python 相关知识&#xff0c;自己动手造轮子&#xff0c;继续为自己的爬虫增加分布式&#xff0c;多线程等功能扩展。另一条路便是学习一些优秀…

1039. 到底买不买(20)

1039. 到底买不买&#xff08;20&#xff09; 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c…