給定一個/path/to/files
包含許多相對連結的目錄foo -> ../other/data/foo
,如何將連結複製files/
為絕對路徑鏈結/mydata/path/
我想用
ls -s $(readlink /path/to/files/*) /mydata/path/
會這樣做,但它只是在新位置中創建相對路徑,複製舊位置中的相對路徑,這意味著所有連結都沒有指向任何內容。
我需要的是最終得到:
/path/to/files/foo -> ../other/data/foo
/mydata/path/foo -> /path/to/other/data/foo
我實際上最終得到的是
/path/to/files/foo -> ../other/data/foo
/mydata/path/foo -> ../other/data/foo # broken link
我還嘗試了 的各種排列cp
,儘管 macOS cp 沒有-s
標誌。
答案1
您正在尋找realpath
:
ls -s $(realpath /path/to/files/*) /mydata/path/
會做你想做的事。