簡體   English   中英

如何在不遵循符號鏈接的情況下創建指向另一個符號鏈接的符號鏈接,同時保持相對路徑?

[英]How to create symlink to another symlink without following symlink while keeping relative path?

如何在不遵循目標符號鏈接但保持目標符號鏈接和創建的符號鏈接之間的相對路徑的情況下創建指向另一個符號鏈接的符號鏈接?

使用以下結構進行測試

├── 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

每次我嘗試在dst文件夾中創建src/file.txt的符號鏈接(本身是src/folder/file.txt的相對符號鏈接)時,生成的符號鏈接永遠不會像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相對選項一起使用?

問候

好像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

所以所有的軟鏈接都是指向另一個軟鏈接或文件的軟鏈接 - 沒有一直解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM