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.c
和a2.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. 符号链接的大小是其链接文件的路径名中的字节数
扫描关注,查看更多文章,提高编程能力
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。