linux中的ln命令讲解 (linux中ln命令用法)

链接类型:

1、硬链接

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

2、软链接

软链接(符号链接:Symbolic Link)类似于Windows中的快捷方式。它实际上是一个特殊的文件。文件实际上是一个文本文件,其中包含的有另一文件的位置信息。它是指向文件或目录的间接指针。与硬链接不同,符号链接可以指向不同文件系统或分区上的文件或目录。

比较:

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

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

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

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

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

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

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

缺点:

1.软链接的缺点

因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

命令:ln [OPTIONS] FILE LINK

ln 选项 源文件 目标文件

目标文件:指定源文件的目标连接文件。

源文件:指定连接的源文件。

如果使用-s选项创建符号连接,则"源文件"可以是文件或者目录。

创建硬连接时,则"源文件"参数只能是文件。

必要参数:

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

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

-f 强制执行

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

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

-s 软链接(符号链接)

-v 显示详细的处理过程

选择参数:

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

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

--help 显示帮助信息

--version 显示版本信息

案例:

1、 创建硬链接

[root@localhost myShell]# ln 5.txt /tmp/9527.txt

[root@localhost myShell]# ll /tmp/9527.txt

-rw-r--r--. 2 root root 0 Jan 6 07:50 /tmp/9527.txt

解释:

在执行ln命令之前,目录/tmp/中不存在9527.txt文件。

执行ln之后,在/tmp/目录中才有9527.txt这一项,表明5.txt和9527.txt链接起来。

注意:

二者在物理上是同一文件。

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

2、创建符号链接到文件

ln -s A.txt /tmp/B.txt

创建名为/tmp/B.txt的符号链接到名为A.txt的文件

创建A文件

解释:

A.txt代表的路径将存放在名为/tmp/B.txt的文件中。

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

ln -s A.txt /tmp/B.txt

ll /tmp/B.txt

l字符是表示符号链接的文件类型标志。

->符号显示符号链接指向的文件。

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

3、创建符号链接到目录

ln -s myShell/ /tmp/myShell

ll /tmp/myShell

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

4、覆盖符号链接

[root@localhost myShell]# ln -s 5.txt /tmp/B.txt

//刚刚我们创建了一个B.txt,所以会报错如下

ln: failed to create symbolic link ’/tmp/B.txt’: File exists

//加参数f(force)

[root@localhost myShell]# ln -sf 5.txt /tmp/B.txt

[root@localhost myShell]# ll /tmp/B.txt

lrwxrwxrwx. 1 root root 5 Jan 6 12:19 /tmp/B.txt -> 5.txt

[root@localhost myShell]#

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

5、删除符号链接

当源文件被删除或者被移动到其他位置,则符号文件将保持悬空状态。

不如就删了它。

rm或者unlink

[root@localhost myShell]# unlink /tmp/B.txt

[root@localhost myShell]# ll /tmp/ | grep ’B.txt’

linux涓璴n鍛戒护鐢ㄦ硶,linuxln鍛戒护浣跨敤鏂规硶

测试完成

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。