创建符号链接
创建符号链接是为了克服硬链接的两个缺点:硬链接不能跨越物理设备,硬链接不能引用目录,只能引用文件。 符号链接是一种特殊类型的文件,它包含指向目标文件或目录的文本指针。
创建符号链接类似于创建硬链接:
[me@linuxbox 游乐场]$ ln -s fun 有趣符号 [me@linuxbox 游乐场]$ ln -s ../fun dir1/fun-sym [me@linuxbox 游乐场]$ ln -s ../fun dir2/fun-sym
[me@linuxbox 游乐场]$ ln -s fun 有趣符号 [me@linuxbox 游乐场]$ ln -s ../fun dir1/fun-sym [me@linuxbox 游乐场]$ ln -s ../fun dir2/fun-sym
第一个示例非常简单,我们只需添加“-s”选项来创建符号链接而不是硬链接。 但是接下来的两个呢? 请记住,当我们创建符号链接时,我们正在创建目标文件相对于符号链接的位置的文本描述。 如果我们查看 ls 输出:
[me@linuxbox 游乐场]$ ls -l 目录1
[me@linuxbox 游乐场]$ ls -l 目录1
总4 | ||
-rw-r--r-- 4 我 | me | 1650 2016-01-10 16:33 好玩 |
lrwxrwxrwx 1 我 | me | 6 2016-01-15 15:17 fun-sym -> ../fun |
上市为 有趣的符号 in dir1 表明它是第一个字段中前导“l”的符号链接,并且它指向“../fun”,这是正确的。 相对于位置 有趣的符号, 开玩笑 在它上面的目录中。 还要注意,符号链接文件的长度是 6,即字符串“../fun”中的字符数,而不是它指向的文件的长度。
创建符号链接时,您可以使用绝对路径名:
[me@linuxbox 游乐场]$ ln -s /home/me/playground/fun dir1/fun-sym
[me@linuxbox 游乐场]$ ln -s /home/me/playground/fun dir1/fun-sym
或相对路径名,就像我们在前面的示例中所做的那样。 在大多数情况下,使用相对路径名更可取,因为它允许在不破坏链接的情况下重命名和/或移动包含符号链接及其引用文件的目录树。
除了常规文件,符号链接还可以引用目录:
[me@linuxbox 游乐场]$ ln -s dir1 dir1-sym
[me@linuxbox 游乐场]$ ls -l
总16
drwxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | dir1 |
右下角 | 1 | me | me | 4 | 2016-01-16 | 14:45 | dir1-sym -> dir1 |
drwxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | dir2 |
-rw-r--r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | 开玩笑 |
-rw-r--r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | 好玩的 |
右下角 | 1 | me | me | 3 | 2016-01-15 | 15:15 | fun-sym -> 有趣 |