给定一个/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/
会做你想做的事。