Windows 7 / Симлинки - Как скопировать Симлинк в каталог?

26

Можно ли скопировать символическую ссылку в каталог в Windows 7. Когда я пытаюсь скопировать каталог по символической ссылке, он пытается глубоко скопировать содержимое в папку.

John2496
источник

Ответы:

23

Я не знаю, как это сделать в Windows Explorer, но вы можете использовать его xcopyв командной строке с аргументом / b, см. Здесь .

Нил
источник
1
@ Нил работал для меня как шарм. Я также добавил /i. Убедитесь, что вы работаете с папкой SYMLINKS (не с соединениями).
Антон Кроуглов
13

используйте следующую команду в командной строке с повышенными правами:

xcopy /b /i <source symlink name> <destination symlink name>

Выходные данные: 0 Файл (ы) скопирован, но символическая ссылка создается в месте назначения. Это проверено в Windows 7 и Windows 8.x, но должно работать начиная с Vista

ОБНОВЛЕНИЕ: работает и в Windows 10

maoizm
источник
1
не работает для меня, он все еще делает физическое копирование, не копируя символическую ссылку ...
jakub.g
1
Сработало у меня: Win 10 x64, повышенная скорость. Проверено на win 2012 R2. УБЕДИТЕСЬ, ЧТО ВЫ НЕ СМЕШИТЕ ​​СОЕДИНЕНИЯ С СИМЛИНКАМИ.
Антон Кроуглов
10

Используйте программу, которая поддерживает их, очевидно. Например, Far Manager позволяет мне копировать символические ссылки в виде ссылок или обходить их и копировать их содержимое:

альтернативный текст

детеныш
источник
Исправление, это работает только для локальных ссылок. Для сети только xcopy /b /iпомогает.
Антон Кроуглов
2

Дальний менеджер был единственным, что сработало. Спасибо, Джои.

По какой-то причине расширение Link Shell либо не предоставляет способ скопировать ссылки / соединения sym, либо я слишком глуп, чтобы понять это. Перепробовал все в меню Drop As ...

С помощью Far Manager просто нажмите «Копировать» в нижней части интерфейса, убедившись, что другая панель окна указывает на папку назначения. Это так просто!

Я скопировал всю мою папку пользователя! Некоторые ссылки, которые вы должны исправить впоследствии, например, данные приложения. Если у вас есть Link Shell Extension, просто щелкните правой кнопкой мыши и измените путь в контекстном меню свойств Link. В противном случае они будут указывать на ваш старый диск. Обязательно исправьте те, которые находятся внутри данных приложения, AppData \ Local и Temporary Internet Files. Обязательно ПРИНИМАЙТЕ СОБСТВЕННОСТЬ перед копированием!

Кроме того, вам нужно сделать это, войдя в другой профиль администратора или загрузившись в другую ОС. Если вы загружены в другую ОС, убедитесь, что ссылки указывают на букву диска, которую хочет целевая ОС, а не букву диска, которую хочет текущая ОС. Например, моей целевой ОС является J: \ users \ Me. Мои соединения там указывают на C: \ users \ Me, потому что C: \ - это буква диска, в которую я буду загружаться. (Да, если щелкнуть ссылки сейчас, откроется папка вашей текущей ОС. Не беспокойтесь об этом.)

Есть записи реестра, которые вы должны изменить. Смотрите здесь .

gggirlgeek
источник
Расширение Link Shell работает, однако инструкции немного сложны для копирования уже существующих symlinked-папок: superuser.com/a/1509670/231129 (Расширение Link Shell все еще стоит, на мой взгляд, для упрощенного создания символических ссылок Однако.)
Venryx
1

Также я нашел расширение оболочки, которое может сделать это немного проще.

Это демонстрируется на HowToGeek здесь

А ссылка на расширение самой оболочки здесь

К сожалению, у меня не было возможности протестировать это самостоятельно, потому что мне нужно сделать это на сервере, и я не особо хочу возиться с расширением оболочки на рабочем сервере - но я подумал, что это может быть полезно.

Michael12345
источник
1

Это было сделано с использованием версии Windows 10 Pro. Тем не менее, я думаю, что это то же самое на Windows 7 и Windows 8.

Во-первых, добавьте возможность создавать символические ссылки для вашей учетной записи пользователя без прав администратора. Это можно найти в локальной политике безопасности (secpol) в разделе «Параметры безопасности> Локальные политики> Назначение прав пользователя> Создать символические ссылки». Добавив своего пользователя без прав администратора к этому параметру прав пользователя, вы можете создавать символические ссылки, разрешение, которое вам нужно, если вы копируете и, следовательно, создаете символическую ссылку.

Затем сделайте это в окне командной строки:

copy /L sourceLocation targetLocation
eug-
источник
Я не вижу /lв copyссылке со ссылкой на Win2008R2 и win2012r2.
ivan_pozdeev
Посмотрите, содержит ли «help copy» в командной строке параметр / L. Я не уверен, предоставляют ли серверные версии Windows те же параметры, что и в Windows 10 и 8, хотя можно было бы ожидать, что это произойдет.
eug-
0

Вы можете использовать Link Shell Extension для этого, однако инструкции немного запутаны. (для копирования уже существующих символических ссылок)

инструкции

  1. Используйте утилиту LSEConfig.exe, чтобы изменить для параметра «Внешнее соединение / символическое соединение» значение «Соединение».
  2. Щелкните правой кнопкой мыши и выберите «Pick Link Source» в родительской папке связанной с сим-папкой папки, которую вы хотите скопировать.
  3. Перейдите в родительскую папку того места, где вы хотите удалить папку, связанную с символами, и запустите «Удалить как: Smart Copy».
  4. Переименуйте временную родительскую «папку-контейнер» в целевое / реальное имя родительской папки.

Процедура несколько хлопотная, поэтому я бы рекомендовал вместо этого использовать xcopy или Far Manager. (еще не пробовал их, но я предполагаю, что они более прямолинейны для прямого / односимвольного копирования папок с символами)

(Расширение Link Shell все же стоит, на мой взгляд, для упрощенного создания символических ссылок.)

Venryx
источник