命令名:ln
语法:ln -s 原文件 目标文件 (创建软链接)
ln 原文件 目标文件 (创建硬链接)
功能:生成链接文件
例子1:生成软链接文件
如上图所示,先用 ln -s 命令生成etc目录下的issue文件的软链接,然后用 ls -l 命令查看该文件。先看上图中第一处画红线的地方,由ls命令的相关知识可知该画线处的第一个字符 l 表示是软链接,另外,当该字符是横杠时表示是文件,是d时表示是目录。第一处画线处的其它字符是rwxrwxrwx,这表示所有者、所属组以及其它人对该文件均有可读、可写和可执行的权限。事实上,软连接就是指向原文件的一个链接,相当于windows中的快捷方式,因此上述的rwxrwxrwx权限并不能说明什么,用户对/etc/issue文件的访问权限还要看/etc/issue的权限,而不是上图中/tmp/issue.soft的权限。通过这个例子我们也可以总结出软链接一定是lrwxrwxrwx。另外,软链接所占的内存空间小,因为它只是存储原文件的链接而不是原文件的内容。
例子2:生成硬链接
如上图所示,先生成issue文件的硬链接issue.hard,然后分别列出原文件issue和硬链接文件issue.hard的详细信息,可以发现这两个文件除了文件名不同外其它的属性都相同。因此硬链接相当于对原文件的一个复制,就相当于cp命令,但是与cp命令不同的是,硬链接可以同步更新。也就是说当修改原文件issue后,硬链接文件issue.hard也会更新。当我们把原文件删除后,软连接将不能访问,而硬链接仍然可以访问。
例子3
如上图所示,用ls -i 命令显示上三个文件的 i 结点(每个文件都有唯一一个i结点),可以发现原文件issue和硬链接文件issue.hard具有相同的i结点,这也就解释了为什么原文件和硬链接文件能够同步更新。
另外,硬链接不能跨分区,软链接可以。硬链接不能针对目录使用,软链接可以。