如何在不遵循目标符号链接但保留目标符号链接和创建的符号链接之间的相对路径的情况下创建到另一个符号链接的符号链接?
使用以下结构进行测试
├── dst
│
└── src
├── file.txt -> folder/file.txt
└── folder
└── file.txt
lrwxrwxrwx 1 user group 15 mars 16 20:05 src/file.txt -> folder/file.txt
每次我尝试在 src/file.txt
文件夹中创建 src/folder/file.txt
的符号链接(本身是 dst
的相对符号链接)时,生成的符号链接永远不会像 dst/file.txt -> ../src/file.txt
但总是直接到达最终目标 dst/file.txt -> ../src/folder/file.txt
ln -s -r [-T] 'src/file.txt' dst/file.txt
仅在没有 -r
的情况下工作并指定自己的相对路径
ln -s '../src/file.txt' dst/file.txt
我需要在许多文件的 for 循环中递归地使用它,我想在符号链接之间保留一个相对路径,但不遵循目标符号链接,只是一个到另一个符号链接的相对符号链接。
是否可以在不遵循目标符号链接的情况下将 ln
与 -r
相对选项一起使用?
问候
答案 0 :(得分:0)
似乎 ln -s -r
跟随链接..
如果没有 -r
选项,ln -s
会准确输入您输入的内容 - 因此稍后可以更改另一个链接,而第一个目录仍然有效。
# mkdir ABC
# mkdir DEF
# touch DEF/xx.txt
# ls -lAF DEF
total 8
drwxr-xr-x. 2 root root 4096 2021-03-17 11:40 ./
drwxrwxrwt. 4 root root 4096 2021-03-17 11:40 ../
-rw-r--r--. 1 root root 0 2021-03-17 11:40 xx.txt
# ln -s DEF/xx.txt
# ls -laF
total 16
drwxrwxrwt. 4 root root 4096 2021-03-17 11:40 ./
drwxr-xr-x. 21 root root 4096 2017-03-17 14:13 ../
drwxr-xr-x. 2 root root 4096 2021-03-17 11:40 ABC/
drwxr-xr-x. 2 root root 4096 2021-03-17 11:40 DEF/
lrwxrwxrwx. 1 root root 10 2021-03-17 11:40 xx.txt -> DEF/xx.txt
# cd ABC/
# ln -s ../xx.txt
# ls -laF
total 8
drwxr-xr-x. 2 root root 4096 2021-03-17 11:40 ./
drwxrwxrwt. 4 root root 4096 2021-03-17 11:40 ../
lrwxrwxrwx. 1 root root 9 2021-03-17 11:40 xx.txt -> ../xx.txt
# echo "ABC" > DEF/xx.txt
# cat ABC/xx.txt
ABC
所以所有软链接都是指向另一个软链接或文件的软链接 - 并没有完全解析。