Wikipedia definiuje stały link jako:
pozycja katalogu, która wiąże nazwę z plikiem w systemie plików. (Sam katalog jest specjalnym rodzajem pliku, który zawiera listę takich pozycji.) Termin ten jest używany w systemach plików, które umożliwiają utworzenie wielu dowiązań twardych dla tego samego pliku.
Zastanawiam się, czy pojęcie twardego łącza jest równoważne z pojęciem skrótu w systemie Windows .
Jeśli twarde linki nie są równoważne skrótom, to jaka jest najbliższa funkcja systemu Windows do twardych linków?
Odpowiedzi:
Nie, twardy link jest zupełnie inny. Miękki link jest bliższy skrótowi Windows (chociaż istnieją istotne różnice, dowiązania symboliczne są bardziej podobne do skrótów Windows niż twarde). Twardy link to inna rzecz, której prawie nigdy nie będziesz potrzebować.
W skrócie, za pomocą tego polecenia tworzony jest miękki link:
Jeśli następnie uruchomisz
ls -l
, zobaczysz:Te
->
środki, którebar
znajduje się link dofoo
. Tak więc otwarciebar
, na przykład za pomocą edytora tekstu, faktycznie otworzy osobny plikfoo
. Jednak usunięciebar
spowoduje jedynie usunięcie skrótu, nie wpłynie na plikfoo
.Natomiast twarde linki są tworzone za pomocą tego polecenia:
Jeśli teraz uruchomisz
ls -l
, nic nie wskazuje na związek między plikami:Ale - i to jest bardzo ważne - to w rzeczywistości ten sam plik . Pliki w systemach plików Unix są przechowywane przy użyciu i- węzłów ; i-węzeł to po prostu sposób, w jaki system plików odwzorowuje nazwę pliku na określoną lokalizację na fizycznym dysku twardym. Tak więc twarde linki to pliki, które wskazują ten sam i-węzeł, co ich cel. Innym sposobem na umieszczenie tego jest to, że wszystkie pliki są w rzeczywistości twardymi linkami wskazującymi na ich i-węzły. Utworzenie twardego łącza do pliku powoduje utworzenie nowego wskaźnika (pliku) w systemie plików, który wskazuje ten sam i-węzeł. Każdy i-węzeł może mieć wiele plików wskazujących go lub jeden lub żaden.
Aby to lepiej zrozumieć, użyj,
ls -i
która pokazuje i-węzeł powiązany z plikiem. Utwórzmy miękki link i twardy link i zobaczmy, co się stanie:Teraz sprawdź ich i-węzły:
Jak widać powyżej, oba mają
foo
iHardLinkToFoo
ten sam i-węzeł (16648029), podczas gdy SoftLinkToFoo ma inny (16648036).Co się stanie, jeśli zmiana nazwy
foo
zmv foo bar
?Kolor czerwony oznacza zerwane miękkie łącze, którego nie można już znaleźć celu. Wynika to z faktu, że miękkie linki wskazują nazwę pliku, a nie jego i-węzeł. Zauważ, że pomimo zmiany nazwy, i-węzeł pozostaje taki sam, więc hardlink jest w porządku, nadal działa.
Podsumowując, twarde linki są w rzeczywistości dwoma przejawami tego samego pliku; są wskaźnikami do tej samej sekcji dysku. Miękkie linki to tylko skróty. Aby przyjąć analogię ze świata rzeczywistego, twarde linki są jak dwa różne numery telefonów dla tej samej linii telefonicznej, a miękkie linki są jak dwie różne linie telefoniczne w tym samym domu.
źródło
rm
lubunlink()
) twardego łącza zmniejsza tylko liczbę linków, dopóki liczba linków nie osiągnie zera, gdy zwolnione zostaną bloki zajmowane przez zawartość pliku. Nie jestem pewien, czy powiedzenie „twarde linki są w rzeczywistości dwoma instancjami tego samego pliku” jest ściśle poprawne, ponieważ te dwie nazwy wskazują na ten sam i-węzeł, a tym samym tę samą treść, zamiast dwóch instancji samego pliku w jakiś sens.Istnieje dobre wyjaśnienie, czym są miękkie i twarde linki, ale jedno musi zostać wyjaśnione.
Okna skróty są równoważne lub podobne do ani miękkimi linkami , ani twardych linków . Na poziomie systemu plików są to tylko pliki. To powłoka, która rozumie ich strukturę i interpretuje je jako linki. Skróty systemu Windows mogą również wskazywać na obiekty w przestrzeni nazw powłoki, które nie są powiązane z systemem plików (drukarki, elementy panelu sterowania, foldery wirtualne).
Skróty systemu Windows oprócz nazwy obiektu systemu plików zawierają następujące informacje: PIDL (nieprzezroczysta binarna „ścieżka” w przestrzeni nazw powłoki), opis, skrót klawiszowy, ikona, katalog roboczy. System Windows dodaje także identyfikatory obiektów NTFS, jeśli używany jest system plików NTFS, aby naprawić zepsute skróty.
Z grubsza odpowiednikiem skrótu Windows jest plik .desktop . Zobacz to pytanie na SuperUser: Czy w Linuksie istnieje odpowiednik .lnk?
źródło
Nie. W systemie Linux rzeczy działają inaczej.
Każdy plik jest reprezentowany przez obiekt o nazwie „i-węzeł”. Z każdym i-węzłem jest powiązany numer (ID).
Jak wiemy, ludzie nie są dobrzy w zapamiętywaniu liczb, ale imion. (Tak ewoluowały książki telefoniczne)
Dlatego nazwa pliku pojawiła się na zdjęciu, aby nadać każdemu i-węzłowi czytelną dla człowieka nazwę. Zasadniczo hardlink wiąże nazwę pliku z i-węzłem. I-węzeł może mieć wiele dowiązań twardych. Jeśli dla danego i-węzła nie ma żadnych dowiązań twardych, miejsce na dysku używane przez i-węzeł może zostać ponownie przydzielone na nowe pliki. Co oznacza, że dla każdego pliku musi znajdować się co najmniej jedno dowiązanie twarde. Nazwa pliku (zwizualizowana jako nazwa pliku / ikona widoczna w przeglądarce plików) jest dowiązaniem twardym.
W systemie Windows skrót jest osobnym plikiem (plik * .lnk). Zawiera informacje o oryginalnym pliku (oczywiście ścieżka pliku). W postrzeganiu Linuksa skrót Windows byłby kolejnym i-węzłem połączonym na stałe z nazwą pliku kończącą się na „.lnk”.
źródło
W systemie Windows możesz również tworzyć twarde linki, jeśli masz system plików NTFS.
Pliki muszą znajdować się na tym samym dysku logicznym.
źródło
subst
komendy. Narzędzie może tego nie wiedzieć / nie dbać o to, a tym samym odmówić utworzenia twardego łącza. Bardzo przydatną rzeczą jest rozszerzenie powłoki powłoki, które umożliwia eksploratorowi ich utworzenie.Duża różnica: nie można utworzyć twardego łącza dla folderów, ale dla plików.
Twoje pytanie powinno być różnicą między dowiązaniem symbolicznym lub dowiązaniem miękkim a skrótem .
zgodnie z tym:
Więc po kliknięciu skrótu zmienisz katalog na rzeczywisty plik, podczas gdy soft-link będzie odnosił się do jego lokalizacji tak, jakby to był rzeczywisty plik, do tego w Linuksie możesz użyć terminala i cd do dowiązań symbolicznych, podczas gdy nie możesz cd do skrótów .
Skrót systemu Windows i program uruchamiający Linux (wskazujący na jakąś lokalizację) byłyby identyczne.
źródło