资讯专栏INFORMATION COLUMN

linux命令之ln

qingshanli1988 / 355人阅读

摘要:命令会增加链接数,命令会减少链接数一个文件除非链接数为,否则不会从文件系统中被物理地删除限制不能对目录做硬链接只有在同一个文件系统中才能创建软链接软链接,是将一个路径名链接到一个文件这些文件是一种特别类型的文件。


linux命令之 ln


ln命令的功能是为某一个文件在另一个位置建立一个同步的链接.链接类型分为硬链接和符号链接(软链接),默认是硬链接,如果要创建符号链接就必须使用-s选项

符号链接文件是一个独立的文件,但是它的许多属性依赖于源文件,所以给你符号链接文件设置权限是没有意义的

当我们在不同的目录用到相同的文件时,不需要在每一个目录放置一个文件,我们只需要在一个固定的目录放上该文件,然后在其他目录用ln命令创建链接就可以了

语法

ln [选项] 参数

选项

-s 创建符号链接(软链接)

-f,--force 强制建立文件或者目录的链接,不论文件或目录是否存在

-v,--verbose 显示命令的处理过程

常用的就这几个,具体的可以查看帮助 ln --help或者 man ln
参数

源文件:指定链接的的源文件,如果使用-s创建软链接,则源文件可以是目录或文件;创建硬链接的时,则源文件参数只能是文件

目标文件:指定源文件链接的目标文件

实例

将在/usr/python/bin/python3 执行文件软链接到 /usr/bin/python3文件上

ln -s /usr/python/bin/python3 /usr/bin/python3

使用该方法,可以在系统中安装多个python版本

将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c

ln /usr/mengqc/mub1/m2.c /usr/liu/a2.c

在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.ca2.c链接起来(注意,二者在物理上是同一文件,指向硬盘的同一位置),利用ls -l命令可以看到链接数的变化

在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

ln -s /usr/mengqc/mub1 /usr/liu/abc

执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中

硬链接和软链接的区别

硬链接

创建硬链接后,己经存在的文件的I节点号(Inode)会被多个目录文件项使用。一个文件的硬链接数可以在目录的长列表格式(ls -l)的第二列中看到,无额外链接的文件的链接数为1

在默认情况下,ln命令创建硬链接。ln命令会增加链接数,rm命令会减少链接数.一个文件除非链接数为0,否则不会从文件系统中被物理地删除

限制:

1. 不能对目录做硬链接
2. 只有在同一个文件系统中才能创建

软链接

软链接,是将一个路径名链接到一个文件.这些文件是一种特别类型的文件。事实上,它只是一个文本文件,其中包含它提供链接的另一个文件的路径名,另一个文件是实际包含所有数据的文件.所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件

与硬链接不同的是,软链接确实是一个新文件,当然它具有不同的I节点号;而硬链接并没有建立新文件

软链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做软链接

特点:

1. 删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据
2. 在目录长列表(`ls -l`)中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是`l`
3. 符号链接的大小是其链接文件的路径名中的字节数   

扫描关注,查看更多文章,提高编程能力

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/33373.html

相关文章

  • 玩转windows内置linux子系统_3.对路径的优化

    摘要:在中,多个文件名指向同一索引节点是存在的。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。 前言 进来玩一会你就会发现,最大的不方便就是路径,为了方便与windows进行交互,我们尽量的把文件的IO操作都使用windows的盘下,即C盘和D盘之类的。而设备挂载之后是...

    enda 评论0 收藏0
  • Elam的caffe笔记配置篇(二):CentOS6.5编译安装NVIDIA驱动

    摘要:禁用自带的驱动驱动会和驱动冲突,如果驱动还是启用状态的话,在安装驱动的过程中会自动报错。改变系统运行级别驱动不能在桌面启动时安装,因此要进入文本模式下启动安装程序才能顺利安装。结果在安装驱动的过程中出现了没有安装,大概是这段话。 配置要求: 系统:centos6.5 目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架 编译安装过...

    chunquedong 评论0 收藏0
  • CentOS上安装node.js二进制发布包

    摘要:工具和资料群高级爬虫作者自建群,欢迎加入作者收集的爬虫相关工具和资料正文先度娘了一下,发现网上的文章是从源码编译,需要挺长时间,可是官网上明明有现成的二进制发布包,然后在官网下载页面下面找到了二进制包的正确打开方式。 showImg(https://segmentfault.com/img/remote/1460000018765904); 工具和资料 QQ群 - Javascri...

    anyway 评论0 收藏0
  • 运维-服务器缓存varnish

    摘要:如带有如下头信息,,默认不会缓存。是一款高性能开源的反向代理服务器和缓存服务器,其开发者是核心的开发人员之一。备份复制备份用默认端口开启你会得到如下信息我们看到,已经开启,但是除了知道这个东西已经监听端口外,我们不知道发生了什么。 varnish 小草新blog: http://homeway.me/ 一、介绍下吧: 首先了解几个概念, 1. Varnish不缓存带有...

    Youngs 评论0 收藏0
  • 运维-服务器缓存varnish

    摘要:如带有如下头信息,,默认不会缓存。是一款高性能开源的反向代理服务器和缓存服务器,其开发者是核心的开发人员之一。备份复制备份用默认端口开启你会得到如下信息我们看到,已经开启,但是除了知道这个东西已经监听端口外,我们不知道发生了什么。 varnish 小草新blog: http://homeway.me/ 一、介绍下吧: 首先了解几个概念, 1. Varnish不缓存带有...

    leanote 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<