Mam plik /home/myuser/Desktop/rc/.netrc , który chcę hardlink do / root , tj. Katalog domowy użytkownika root . Kiedy robię:
ln /home/user/Destkop/rc/.netrc /root
daje następujący błąd:
ln: tworzenie twardego łącza
/root/.netrc' =>
.netrc ': Nieprawidłowe łącze między urządzeniami
ale działa, gdy twarde łącze pliku do domu użytkownika, czyli do / domu / użytkownika .
Więc w czym tkwi problem, dlaczego mówi o niepoprawnych urządzeniach na wiele urządzeń, skoro jest tu tylko jeden system plików?
PS. Używam RHEL6
mount | column -t
i spójrz. Lub uruchommountpoint -d /
,mountpoint -d /home
,mountpoint -d user
, imountpoint -d /root
. Powinieneś dostać... is not a mountpoint
za ostatnie trzy.mount | column -t
alecolumn -t < /proc/mounts
./proc/mounts
jest bardziej prawdopodobne, że pokaże wszystkie wierzchowce w systemie niż/etc/mtab
, z któregomount
pobiera informacje. Choć warto zauważyć, że w wielu nowoczesnych systemów,/etc/mtab
a/proc/mounts
oba powiązany/proc/self/mounts
.Odpowiedzi:
najprawdopodobniej twój
/home
katalog nie znajduje się na tej samej partycji co/root
katalog.Możesz to łatwo sprawdzić za pomocą
cat /etc/fstab
twardych dowiązań, których nie można tworzyć między różnymi partycjami, mogą tylko dowiązania symboliczne.źródło
Wydaje mi się, że NAJLEPSZY sposób to NIE używać łącza HARD, ale zamiast tego używać łącza symbolicznego. Przekonasz się, że jest to o wiele mniej kłopotów, a wszystko działa dobrze. Twardy link ma kilka interesujących problemów, jeśli nie jesteś ich świadomy.
Zobacz
man ln
i sprawdź-s
opcję!Zasadniczo proszę używać linków symbolicznych zamiast linków HARD.
źródło