Как скопировать папку с scp, содержащую ссылки? При использовании флага -r
копируются все данные, на которые указывают ссылки. Как скопировать саму ссылку?
решение1
Используйте rsync. Это дает вам гораздо больше контроля над тем, что копируется. Для рекурсивного копирования каталогов и копирования символических ссылок как таковых используйте rsync -rl
. Но на самом деле, в большинстве случаев вам следует использоватьrsync -a
, который в основном создает идентичную копию: каталоги копируются рекурсивно, символические ссылки и именованные каналы/сокеты/устройства копируются как таковые, разрешения и временные метки сохраняются и т. д. (Однако время доступа не сохраняется. А некоторые «дополнительные» атрибуты требуют дополнительных флагов.)
Есть параметры для управления тем, как копировать символические ссылки, указывающие за пределы копируемого дерева: --safe-links
пропускать их, --munge-links
изменять их на висячие ссылки восстанавливаемым способом. См.руководстводля получения подробной информации.
Rsync не поставляется с ssh, но он является частью установки по умолчанию многих систем unix, а если нет, то обычно доступен как упакованная программа. Его также нужно установить на сервере. Он требует доступа SSH на сервере, как и scp (если доступ к ограниченной оболочке, он должен разрешать rsync, что часто бывает, если он разрешает scp).