Давайте предположим, что у меня есть две идентичные системы. В первой системе я создал символическую ссылку. На втором я хочу скопировать эту символическую ссылку через sftp, и символьная ссылка будет работать одинаково (то есть, если ссылка на символическую ссылку /etc/
, после ее копирования, будет скопирована только символическая ссылка и только символическая ссылка (не связанные файлы))
Любые идеи о том, как я могу это сделать / если я могу это сделать? Я только хочу скопировать символическую ссылку, ничего больше; просто ссылка.
sftp
не позволю тебе сделать это.rsync
можно, как можноssh cp ...
Ответы:
Если вы скопируете символическую ссылку, вы можете скопировать архив на удаленный компьютер любым удобным для вас способом. Распаковав его, вы обнаружите, что скопировали только символическую ссылку и ничего больше. Например:
Чтобы проверить это, сначала я создал текстовый файл.
Затем создайте символическую ссылку на файл и сожмите ее в tar-архив.
Перенесите этот файл на другой компьютер, а затем распакуйте его:
Вы обнаружите, что есть символическая ссылка, но не оригинальный файл, на который она указала.
Конечно, если вы хотите передать как исходный файл, так и символьную ссылку, сохранив их связь, вы можете поместить их оба в архив, и они будут перенесены, и символическая ссылка все равно должна быть правильно указана на исходный файл при распаковке. тарбол в месте назначения.
источник
sftp
( linux.die.net/man/1/sftp )! Есть командаsymlink
специально для того, что вам, похоже, нужно.Немного неясно, как именно вы хотите иметь дело с символической ссылкой. Насколько я понимаю, вы хотите воссоздать символическую ссылку в другой системе. Симлинки зависят от файловой системы, об этом должен знать протокол, используемый для копирования файлов. Хорошим примером является использование
rsync
с-a
опцией.конкретнее,
-l
вариант, но-a
, вероятно, то, что вы хотите.Он будет воссоздавать символические ссылки без перетягивания целей (разыменование ссылок).
источник
sftp
будет перебирать подкаталоги с помощью-r
переключателя, но не будет следовать символическим ссылкам, так как он абстрагирует файловые системы.sftp
поддерживает создание символических ссылок на хосте. Вы должны хотя бы попытаться загрузить только символическую ссылку (когда символическая ссылка~/etc
->/etc/
обойтисьget etc
без завершающего слова/
) и посмотреть, что произойдет. Это зависит от ФС сервера и клиента. Пожалуйста, измените ваш оригинальный вопрос соответственно!Я знаю, что @polemon уже ответил на это.
Но делаю немного для быстрого решения.
Я должен был сделать man rsync, чтобы узнать, какой переключатель я хочу использовать ...
Хотя, в твоем случае нужно убедиться, что ссылки не битые!
источник
Очень простое решение (для домашнего каталога):
или
например
обеспечить размещение ссылки .bashrc в другом месте (например, в сети).
источник
Другие ответы уже объясняют, как перенести символическую ссылку на другой компьютер. Однако независимо от того, как вы передаете символическую ссылку, вы не сможете использовать эту символическую ссылку для доступа к файлу
/etc/
через FTP, SFTP, SCP, SSH или любым другим способом. Эти службы, как правило, привязаны к конкретному каталогу или иным образом лишены возможности доступа к файлам, которые не были явно предоставлены в общий доступ. Конечно, всегда есть способы обойти это на старых системах, но такие уязвимости имеют тенденцию исправляться и обновляться, как только они обнаруживаются. Извините, я не думаю, что то, что вы хотите сделать, станет возможным.источник