Symlink несколько файлов в существующую папку - PullRequest
0 голосов
/ 05 января 2019

У меня есть эта команда:

ln -sf src/* lang/golang/src/genericc/

Я хочу создать символическую ссылку на все файлы в src на существующий каталог genericc, но когда я запускаю указанную выше команду, я получаю битые символические ссылки в месте назначения. Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 05 января 2019

Символьные ссылки, созданные с относительными путями (то есть, где исходный путь не начинается с "/"), разрешаются относительно каталога, в котором находится ссылка. Это означает ссылку на "src / foo.c" в lang / Каталог golang / src / genericc / попытается преобразовать в lang / golang / src / genericc / src / foo.c, который, вероятно, не существует.

Решение: либо используйте абсолютный путь к исходным файлам, например:

ln -sf /path/to/src/* lang/golang/src/genericc/

или, чтобы подстановочный знак * работал правильно с правильной командой, cd к целевому каталогу, чтобы относительные пути работали так же, как при создании:

cd lang/golang/src/genericc
ln -sf ../../../../src/* ./
...