Linux系统的链接命令ln
关于链接
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。
硬链接
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软链接
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
基本命令
建立链接sudo ln -s 链接文件 目标文件
删除链接(和删除文件夹一样)rm -rf 目标文件
修改指向的新路径ln –snf /var/www/test1 /var/test
示例
[email protected]:/home/fangjian$ sudo ln -s /mnt/d/aosp /home/fangjian/android9
[email protected]:/home/fangjian$ ls -l android9
lrwxrwxrwx 1 root root 11 Feb 9 09:39 android9 -> /mnt/d/aosp
若出现错误如下:ln: failed to create symbolic link ‘/usr/bin/pip’: File exists
则使用:(-f, --force remove existing destination files)ln -sf /mnt/d/aosp /home/fangjian/android9
注意事项
建立硬链接时,链接文件和被链接文件必须位于同一个文件系统
中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。
如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统
中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。
上一篇: linux软链接的创建、删除和更新
下一篇: Java中如何比较两个数组中元素是否相同