有人能给我举个例子说明为什么我们应该在文件之间使用符号链接类型的“ln”命令吗?我知道当您创建符号链接文件时,该文件大小非常小,并且它会重定向到主文件。
问题是当我从另一个目录中的特定文件(文本文件)创建符号链接时,我无法 cat、less 或任何类型的打印和查看该文件。请帮助我更多地了解这种类型。
谢谢。
答案1
假设您有一个名为的文件/home/george/Images/ubuntu.jpg
并且希望它也可以在/var/tmp
目录中使用,您可以运行:
ln -s /home/george/Images/ubuntu.jpg /var/tmp
然后,您也可以使用该/var/tmp/ubuntu.jpg
路径查看该文件。
注意不要忘记为传递给链接命令的第一个参数提供正确的相对或绝对路径。此路径相对于符号链接所在的目录。这是一个常见的错误来源,就像 Nitin 回复所展示的那样。
答案2
符号链接包含一个文本字符串,该字符串会被操作系统自动解释并作为目标文件或目录的路径。
符号链接最相关的用例是重组文件系统层次结构,从而保持与 POSIX 等旧工具和标准的兼容性。
维基百科上有关于符号链接。
答案3
正如您提到的,您已经创建了一个链接,但是如果您执行 cat,则无法访问该文件。
- 您应该有权限访问原始文件。
- 文件应该位于同一文件系统/分区。
--------------------------
Example:
$ cd /
$ echo "UBUNTU" > orig.txt
$ cat orig.txt
UBUNTU
$ ls -l orig.txt
-rw-r--r-- 1 root root 0 Jul 26 18:28 orig.txt
$ ln -s orig.txt /pool0/manager/link.txt
$ cd /pool0/manager/
$ cat link.txt
cat: cannot open link.txt: No such file or directory
--------------------------