哇,我以前从来没有真正使用过这么多符号链接(symbolic link),但这真是令人难以置信:
bash-3.2$ echo "weird" > original.txt
bash-3.2$ mkdir originals
bash-3.2$ mv original.txt originals/
bash-3.2$ cat originals/original.txt
weird
bash-3.2$ mkdir copies
bash-3.2$ ln -s originals/original.txt copies/copy.txt
bash-3.2$ cat copies/copy.txt
cat: copies/copy.txt: No such file or directory
bash-3.2$ ls copies/copy.txt
copies/copy.txt
bash-3.2$ ls -l copies/copy.txt
lrwxr-xr-x 1 zach staff 22 Dec 22 01:23 copies/copy.txt -> originals/original.txt
bash-3.2$ cat originals/original.txt
weird
bash-3.2$ cat copies/copy.txt
cat: copies/copy.txt: No such file or directory
bash-3.2$ cd copies/
bash-3.2$ cat copy.txt
cat: copy.txt: No such file or directory
为什么我不能在副本目录中 cat 符号链接(symbolic link)?
如果我从副本/中创建符号链接(symbolic link),我可以很好地捕捉它。如果我在当前目录中创建符号链接(symbolic link),我也可以 cat 它就好了。如果我在当前目录中创建符号链接(symbolic link),然后将其移动到 copies/,我会得到“copies/copy.txt:没有这样的文件或目录”。
最佳答案
如果您创建符号链接(symbolic link)的相对路径,它会将其存储为相对符号链接(symbolic link)。符号链接(symbolic link)是相对于链接所在的位置,而不是它创建或打开的位置。
请使用绝对路径或相对于链接的路径。
改变:
ln -s originals/original.txt copies/copy.txt
收件人:
# absolute
ln -s /path/to/originals/original.txt copies/copy.txt
# relative
cd copies
ln -s ../originals/original.txt copy.txt
关于bash - 在另一个目录中建立链接时符号链接(symbolic link)不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8601988/