Как мне скопировать символическую ссылку?

43

У меня есть символическая ссылка на файл в одном каталоге. Я хотел бы иметь ту же ссылку в другом каталоге. Как мне скопировать символическую ссылку?

Я попытался скопировать символическую ссылку, но это копирует файл, на который он указывает, вместо самой символической ссылки.

пользователь
источник
1
Есть ли cpна поддержку CentOS -Pили --no-dereferenceпереключатель?
Манатворк
@ Manatwork: Спасибо, он только что нашел это. Если вы хотите опубликовать это как ответ, я приму это.
Пользователь

Ответы:

57

Используйте cp -P(заглавная P), чтобы никогда не проходить символическую ссылку и вместо этого скопировать символическую ссылку.

Это можно сочетать с другими параметрами, такими как -Rкопирование иерархии каталогов - cp -RLперебирает все символические ссылки на каталоги, cp -RPкопирует все символические ссылки как таковые. cp -Rможет сделать один или другой в зависимости от вариантов Unix; GNU cp(как установлено в CentOS) по умолчанию -P.

Даже с помощью -P, вы можете скопировать цель символической ссылки в каталог в командной строке, добавив /в конце: cp -RP foo/ barкопирует дерево каталогов, на которое fooуказывает.

GNU cpимеет удобный -aвариант , который сочетает в себе -R, -P, -pи немного больше. Он делает точную копию источника (насколько это возможно), сохраняя иерархию каталогов, символические ссылки, разрешения, время модификации и другие метаданные.

Жиль "ТАК - перестань быть злым"
источник
3
Помните, что после копирования / перемещения символическая ссылка может быть разорвана (если источником является символическая ссылка на относительный путь).
Стефан Шазелас
3
Есть ли способ предотвратить разрыв символических ссылок, если вы переходите в каталог выше или ниже?
Эндрю Браун
Как примечание: «GNU cp» - это не то же самое gcp, что я использую. gcp -Pв настоящее время сломан, даже в 2019 году. (вздох).
tgm1024
1

Проверьте этот ответ https://superuser.com/a/315757/53590 для конкретного CentOS взять на себя проблему. Весь вопрос может помочь вам, но в нижней части находится именно CentOS.

Саймон Хоар
источник
1
Обратите внимание, что другие могут выбрать другой порядок, чем ваш, для перечисления ответов. Кроме того, порядок может измениться во времени. Пожалуйста, оставьте прямую ссылку на указанный ответ. (Нажмите на ссылку «поделиться» под этим ответом и скопируйте
появившуюся