Учитывая, что каталог /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/
сделаю то, что вы хотите.