Windows7 hardlink через два разных диска

13

Я пытаюсь создать жесткую ссылку на диске C, которая указывает на файл на диске D. Я открываю терминал с правами администратора и пробую следующее:

C:\Users\sandro>mklink /H _vimrc D:\sandro-desktop\.vimrc

Я получаю ошибку: система не может переместить файл на другой диск.

Когда я пытаюсь использовать мягкую ссылку, возникает проблема, заключающаяся в том, что по какой-то причине изменения содержимого ссылки не отражаются в целевом файле.

Спасибо!

Sandro
источник
Как насчет _vimrcназначения вместо .vimrc?
ulidtko
Не ответ, но вы найдете здесь полезную информацию, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
therube

Ответы:

21

Жесткая ссылка - это функция файловой системы, которая не может пересечь границу файловой системы. Вы не можете жестко связать файлы на C: с D: потому что они являются отдельными файловыми системами. Каждый из них может содержать один и тот же тип файловой системы (например, NTFS), но они являются отдельными файловыми системами.

Майк Фитцпатрик
источник
Я считаю, что s / другой / отдельный / будет более подходящим.
user1686
@ Grawity: Да, согласился. Так отредактировано.
Майк Фицпатрик,
У вас есть идеи о том, как я могу обойти это?
Сандро
Вы можете перенести свой профиль пользователя Windows 7 (или просто папку «Мои документы») на диск D, тогда будут работать жесткие ссылки. Если вы сделаете это, убедитесь, что вы используете правильные методы в Windows 7 (обычно через вкладки свойств) - не перемещайте папки вручную из C: в D:
Майк Фицпатрик
Единственный случай, когда жесткая связь между C: и D: будет работать, это когда они находятся в одной и той же файловой системе, например subst D: C:\utils(конечно, созданные с использованием Registry, чтобы сделать это substпостоянным).
Miroxlav
3

Если это Windows 7, вы можете использовать символические ссылки - Stemomover делает именно это

Подмастерье Компьютерщик
источник
Чем это отличается от того, что я делаю сейчас? Я думаю, что я могу попробовать это :)
Сандро
символьные ссылки работают между каталогами - довольно много старых опций, связанных с переходами, нет. Кроме того, так как есть аккуратный интерфейс, который сообщает вам команду, проще понять, что сделано. Я в основном использую XP, так что я не уверен, что это «лучше», но из того, что я прочитал, он должен делать то, что вам нужно, чтобы делать это с наименьшим суетой
Journeyman Geek
2
@Sandro: Технические подробности: две жесткие ссылки указывают на один и тот же индекс (в Unix; очень похож на NTFS в Windows), который работает только в пределах одной файловой системы. Две жесткие ссылки полностью идентичны; нет "оригинала" Символическая ссылка, с другой стороны, указывает на путь , который может быть любым текстом на самом деле.
user1686
Если так работают символические ссылки, то почему, когда я делаю изменение в одном файле, другой не показывает изменения?
Сандро
-3

Попробуй это:

mklink /H "C:\Users\sandro_vimrc" "D:\sandro-desktop\.vimrc"

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

Я думаю, что ваша ссылка должна быть полным путем.


источник
Я попробовал те и до сих пор ничего. Спасибо за идею, хотя!
Сандро
Это, вероятно, точечное имя цели. Это работает для других файлов?