Як скопіювати символічне посилання?


41

У мене в одному каталозі є символьне посилання на файл. Я хотів би мати те саме посилання в іншому каталозі. Як скопіювати символічне посилання?

Я спробував копіювати символічне посилання, але це копіює файл, на який він вказує, а не символічне посилання.


1
Чи cpпідтримує CentOS підтримку -Pчи --no-dereferenceкомутатор?
манастирські роботи

@manatwork: Дякую, це просто знайшло це. Якщо ви хочете опублікувати його як відповідь, я прийму його.
Користувач

Відповіді:


54

Використовуйте 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
Зауважте, що інші можуть вибрати інше, ніж ваше, для перерахування відповідей. Крім цього, порядок може змінюватися в часі. Будь ласка, опублікуйте пряме посилання на вказану відповідь. (Клацніть посилання «поділитися» під цією відповіддю та скопіюйте пряме посилання, яке з’явиться.)
manatwork
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.