Linux命令行跟我学(36):创建Linux中的文件链接
整机外设
在Linux中如果用户使用cp、vi创建文件时,在用户指定的目录下就设置了一个到该文件的指针,这个指针也叫做链接。如果有多个用户要用到这个文件,就可以通过创建一个到该文件的链接以便使其他的用户也可以访问到此文件。
提示:Linux中的文件链接与Windows系统中的快捷方式有一定的相似之处。
Linux中的链接有两种类型,分为硬链接和符号链接。下面将分别介绍其特点。
硬链接指的是在另外的目录或本目录中添加目标文件的一个目录项,使得一个文件在多个目录中。这种链接不会创建原有文件的副本,所以源文件和文件链接是同一个文件。这时的文件状态信息诸如:访问权限、文件所有者、文件所在组,对于其文件链接都是一样的,如果修改原文件则该文件链接的属性也发生改变。由于操作系统不能区分到文件的两个或多个链接之间创建的先后顺序,那么如果删除了其中的任何一个,仍可以通过另一个链接来访问这个文件。
对于硬链接有如下的限制:不能对目录文件做硬链接、不能在不同的文件系统之间做硬链接。
符号链接也叫做软链接,是将一个路径名链接到一个文件上。这些链接文件只是一个文本文件,它包含提供链接的另一个文件的路径名。和硬链接不同的是,符号链接是一个新文件,因此它有不同的节点号。它比硬链接有一个很大的优点在于如果删除了源文件,则不会删除链接文件,一旦以相同的文件名创建了源文件,链接将继续指向这个文件。
创建符号链接时最好使用绝对路径名,这样可以在任何的目录下进行符号链接。(以上两种链接文件可以存放在相同的目录中,但是要有不同的文件名;也可以有相同的文件名,但是要存放在不同的目录中)。
创建这两种链接的方法就是使用ln命令:ln [-s]existing-file (源文件)new-link(链接文件),当带有选项-s时将创建符号链接,不带时将建立硬链接。例如:
ln -s /home/bvpwer /home/ilrr/rr此命令建立了符号链接,如果用户使用符号链接作为cd命令的参数时,bath、tcsh、zsh对符号链接所指向目录处理的方式不同,其结果会使用户感到困惑,所以最好不要使用该方法。
ln /home/bvpower1 /home/ilrr/rr1这样就建立了一个硬链接,如果修改其中的一个文件时,另一个文件的内容也随着发生改变。
用户可以使用ls [-i][-l]命令查看文件的链接情况,具体细节可以使用man命令和info命令查询。