ln指令:为文件创建连接
【语 法】ln [选项] [参数]
【功能介绍】ln指令用来为文件创建连接,连接类型分为硬链接(hard link)和符号连接(symbolic link)两种,默认的连接类型是硬链接。如果要创建符号连接则必须使用"-s"选项。
【选项说明】
选 项 | 功 能 |
-b | 为每个存在的文件创建备份文件 |
-d或-F或 --directory | 默认情况下,不允许对目录创 建硬连接。此选项允许“root” 用户建立目录的硬连接。受系统 设置的影响,此选项可能导致 命令执行失败 |
-f | 强制创建连接,即使目标文件已 经存在。目标文件被强制 覆盖 |
-n或 --no-dereference | 把指向目录的符号连接目标当做 一个普通文件 |
-i或 --interactive | 创建连接时,如果目标文件已经 存在,则提示用户确认覆盖已 存在的目标文件 |
-s或 --symbolic | 创建符号连接。如果系统不支持 符号连接,则导致命令出错 |
-v或--verbose | 详细信息模式,输出指令的 详细执行过程 |
【参数说明】
参 数 | 功 能 |
源文件 | 指定连接的源文件。如果使用“-s”选 项创建符号连接,则“源文件”参数可以 是文件或者目录。创建硬连接时,则 “源文件”参数只能是文件 |
目标文件 | 指定源文件的目标连接文件 |
【经验技巧】
ln指令默认创建的连接为硬连接,所以不能对目录建立连接。要为目录建立连接必须使用"-s"选项,指明创建的连接类型为符号连接。
只能为普通文件创建硬连接,不能为目录创建硬链接。而符号连接则没有任何限制。
互为硬连接的两个文件(源文件和目标文件)等同于一个文件,所不同的仅仅是文件名。可以使用"ls -i"指令查看文件的索引节点,互为硬链接的文件的索引节点(inode:index node)号相同。删除互为硬连接的两个文件中的任何一个文件,另一个文件内容不受任何影响。而编辑或者修改两者中的任何一个文件,另一个文件的内容也发生同样的变化。
创建硬连接时,源文件和目标文件必须同一个硬盘分区下,不能跨越不同的分区。而创建符号连接时,源文件和目标文件可以在任何硬盘分区下。因为符号连接文件本身只记录了源文件的路径信息,而硬链接要创建一个具有相同索引节点的连接文件,而索引节点在不同的分区中自成体系的,不同的分区中的索引节点不能混用,所以硬链接只能在同一个硬盘分区下。
符号连接文件中保存的是源文件的存放路径,所以删除源文件后,符号连接文件将失去意义。符号连接类似于"快捷方式",可以简化文件或目录的访问路径。可以为路径很深或书写不方便的文件或目录创建符号连接,以提高访问效率。
【示例44】为文件和目录创建连接。ln命令默认创建的是硬链接。下面举例说明硬链接的创建。具体步骤如下:
(1)在命令行中输入下面的命令:
- [root@localhost ~]# ln /etc/fstab ./myfstab
- #为源文件/etcfstab创建硬连接myfstab
说明:此命令没有任何输出信息。
(2)使用ls指令的"-i"选项,显示源文件和硬链接文件的索引节点信息。在命令行中输入下面的命令:
- [root@localhost ~]# ls -i /etc/fstab . /myfstab #创建互为硬链接文件的索引节点号
输出信息如下:
- 1393895 ./myfstab 1393895 /etc/fstab
说明:可以看出"/etc/fstab"文件和"./myfstab"文件的索引节点号是相同的,所以,除了文件名不同外,其他的完全相同。
(3)硬链接仅对文件起作用,如果要建立目录的硬连接将导致出错。在命令行中输入下面的命令:
- [root@localhost ~]# ln mydir demolink #试图对目录创建硬链接
输出信息如下:
- ln: `mydir: hard link not allowed for directory
说明:错误信息说明目录不允许创建硬链接。
(4)可以使用ln指令的"-s"选项,创建目录的符号连接。在命令行中输入下面的命令:
- [root@localhost ~]# ln -s mydir demolink
- #为目录mydir创建符号链接demolink
(5)使用ls指令查看连接文件的详细信息。在命令行中输入下面的命令:
- [root@localhost ~]# ls -l#显示文件详细信息
输出信息如下:
- total 84
- drwxr-xr-x 2 root root 4096 May 14 15:16 Desktop
- -rw------- 1 root root 1495 May 12 23:31 anaconda-ks.cfg
- lrwxrwxrwx 1 root root 5 May 14 17:25 demolink -> mydir
- drwxr-xr-x 2 root root 4096 May 14 17:25 mydir
说明:从上面的输出信息"demolink->mydir",可以看出连接文件"demolink"是"mydir"目录的符号连接。