Hardlink Windows7 na dwóch różnych dyskach

13

Próbuję utworzyć łącze twarde na moim dysku C, które wskazuje na plik na moim dysku D. Otwieram terminal z uprawnieniami administratora i próbuję:

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

Występuje błąd: System nie może przenieść pliku na inny dysk.

Kiedy próbuję użyć softlink, pojawia się problem, który z jakiegoś powodu zmiany w zawartości łącza nie są odzwierciedlane w docelowym pliku.

Dziękuję Ci!

Sandro
źródło
Co powiesz _vimrcna miejsce docelowe zamiast .vimrc?
ulidtko
Nie ma odpowiedzi, ale znajdziesz tutaj dobre informacje, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
therube

Odpowiedzi:

21

Dowiązanie twarde to funkcja systemu plików, która nie może przekroczyć granicy systemu plików. Nie można na stałe podłączać plików w C: do D: ponieważ są one oddzielnymi systemami plików. Każdy z nich może zawierać ten sam typ systemu plików (np. NTFS), ale są oddzielnymi systemami plików.

Mike Fitzpatrick
źródło
Wierzę, że s / inny / oddzielny / byłby bardziej odpowiedni.
user1686
@grawity: Tak, uzgodniono. Tak edytowane.
Mike Fitzpatrick
Czy masz pomysły, jak mogę to obejść?
Sandro,
Możesz migrować swój profil użytkownika Windows 7 (lub tylko folder Moje dokumenty) na dysk D, wtedy hardlinks będą działać. Jeśli to zrobisz, upewnij się, że korzystasz z odpowiednich metod w systemie Windows 7 (zazwyczaj za pomocą kart właściwości) - nie przenoś ręcznie folderów z C: do D:
Mike Fitzpatrick
Jedynym przypadkiem, w którym będzie działać hardlink między C: i D:, jest to, że znajdują się one w tym samym systemie plików, np. subst D: C:\utils(Oczywiście utworzone przy użyciu Rejestru, aby to substutrwalić).
miroxlav
3

Jeśli ma Windows 7, możesz użyć dowiązań symbolicznych - Steammover właśnie to robi

Journeyman Geek
źródło
Czym to się różni od tego, co teraz robię? Myślę, że mogę spróbować :)
Sandro
dowiązania symboliczne działają między katalogami - wiele starszych opcji związanych z połączeniami nie działa. Ponadto, ponieważ jest schludny interfejs, który mówi ci polecenie, łatwiej jest ustalić, co się dzieje. Najczęściej używam XP, więc nie jestem pewien, czy to „lepsze”, ale z tego, co przeczytałem, powinno ono wykonać pracę, jakiej potrzebujesz, aby robić to bez najmniejszego zamieszania
Journeyman Geek
2
@ Sandro: Szczegóły techniczne: dwa dowiązania twarde wskazują na ten sam i- węzeł (w Uniksie; bardzo podobny w Windows NTFS), który działa tylko w obrębie jednego systemu plików. Dwa dowiązania twarde są całkowicie identyczne; nie ma „oryginału”. Z drugiej strony dowiązanie symboliczne wskazuje ścieżkę , którą może być dowolny tekst.
user1686
Jeśli tak działają dowiązania symboliczne, to dlaczego przy zmianie jednego pliku w drugim nie widać zmian?
Sandro,
-3

Spróbuj tego:

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

Zgaduję, że ma to coś wspólnego z nazwą pliku docelowego. Spróbuj użyć cudzysłowów wokół linku docelowego.

Myślę, że twój link również musi być pełną ścieżką.


źródło
Próbowałem tych i nadal nic. Dzięki za pomysł!
Sandro
To prawdopodobnie nazwa kropki celu. Czy to działa w przypadku innych plików?