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!


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.


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


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ą.


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?
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.