在 Debian(以及其它 Linux 发行版)中,软链接(符号链接,symlink)可以使用相对路径,关键是:相对路径是相对于“软链接所在目录”的,而不是当前终端所在目录。
下面分几种常见情况说明。
ln -s 目标路径 软链接名
/home/user/
├── dirA/
│ └── file.txt
└── dirB/
你现在在 dirB 里创建一个软链接,指向 dirA/file.txt
cd /home/user/dirB
ln -s ../dirA/file.txt link_to_file
说明:
link_to_file 在 /home/user/dirB/../dirA/file.txt 是相对于 dirB 的路径查看:
ls -l link_to_file
# link_to_file -> ../dirA/file.txt
cd /home/user
ln -s dirA/file.txt dirB/link
如果以后在 dirB 中访问 link,它会去找:
dirB/dirA/file.txt ❌(不存在)
readlink link_to_file
或:
ls -l link_to_file
ln -s ../dirA dirB/link_dir
cd 软链接所在目录
ln -s 相对目标路径 软链接名
ln -s /home/user/dirA/file.txt /home/user/dirB/link
软链接的相对路径,是相对于“软链接文件所在目录”的路径,不是你执行命令时的目录。
如果你有具体目录结构,我可以帮你写准确的 ln 命令。