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,一经查实,立即删除!

相关文章

6面向对象的程序设计

ECMA_262把对象定义为&#xff1a;无序属性的集合&#xff0c;其属性可以包含基本值、对象或者函数。 6.1理解对象 特性&#xff08;attribute&#xff09;是内部值&#xff0c;描述了属性&#xff08;property&#xff09;的各种特性。ECMAScript中有两种属性&#xff1a;数据…

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

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

Linux下tail命令使用

linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备&#xff0c;通常是终端&#xff0c;通俗讲来&#xff0c;就是把某个档案文件的最后几行显示到终端上&#xff0c;假设该档案有更新&#xff0c;tail会自己主动刷新&#xff0c;确保你看到最新的档案内容。 一…

城市编号(省和市)

备注&#xff1a;这里只是个人的观点&#xff0c;有的地方也是copy&#xff0c;多多指教&#xff0c;个人笔记&#xff0c;有侵犯你们版权的地方还望海涵&#xff01;&#xff01;&#xff01; "qq": [ { "describe_content": "省", "type&…

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;进行一些相应的操作。但是大多数时候用户安装完该工具后都是直接进入后台数…

Shell 脚本编程之基础

最近闲着无聊&#xff0c;把笔记写在这吧 0x00 特殊符号和常见的运算符 <1>特殊符号 $*&#xff1a;命令行所有参数组成的字符串 $&#xff1a;命令行所有参数组成的字符串 $n&#xff1a;n位数字&#xff0c;$0表示命令名称&#xff0c;$1表示命令行第一个参数&#xff…

Linux 下的DMA浅析

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

Node.jsNPM的安装与配置(转)

Node.js安装与配置 Node.js已经诞生两年有余&#xff0c;由于一直处于快速开发中&#xff0c;过去的一些安装配置介绍多数针对0.4.x版本而言的&#xff0c;并非适合最新的0.6.x的版本 情况了&#xff0c;对此&#xff0c;我们将在0.6.x的版本上介绍Node.js的安装和配置。&#…

从值栈中获取数据

使用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;选择添加一个域开始域添加向导输入我们…

Linux 驱动面试题总结

1、 Linux设备中字符设备与块设备有什么主要的区别&#xff1f;请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备&#xff1a;字符设备是个能够像字节流&#xff08;类似文件&#xff09;一样被访问的设备&#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中会根据硬件的信息获取…

XPath学习笔记

XPath语法 XPath使用路径表达式选取XML文档中的节点或者节点集。 路径表达式 表达式描述nodename获得该节点下的所有节点/从根节点开始//从匹配选择的当前节点开始&#xff0c;不考虑位置.选取当前节点…选取当前节点的父节点选取属性 比如&#xff1a; 表达式描述nation选…