Jaka jest różnica między dowiązaniami symbolicznymi a twardymi?


Odpowiedzi:


40

Różna semantyka linków twardych i miękkich sprawia, że ​​są one odpowiednie do różnych rzeczy.

Twarde linki:

  • nie do odróżnienia od innych pozycji katalogu, ponieważ każda pozycja katalogu jest dowiązaniem twardym
  • „oryginał” można przenieść lub usunąć bez przerywania innych twardych linków do tego samego i-węzła
  • możliwe tylko w tym samym systemie plików
  • uprawnienia muszą być takie same jak uprawnienia na „oryginale” (uprawnienia są przechowywane w i-węźle, a nie w pozycji katalogu)
  • można tworzyć tylko w plikach, a nie w katalogach

Linki symboliczne (linki miękkie)

  • po prostu rejestruje ten punkt do innej ścieżki pliku. ( ls -lpokaże ścieżkę, na którą wskazuje dowiązanie symboliczne)
  • pęknie, jeśli oryginał zostanie przeniesiony lub usunięty. (W niektórych przypadkach pożądane jest, aby link wskazywał na plik, który aktualnie zajmuje określoną lokalizację)
  • może wskazywać plik w innym systemie plików
  • może wskazywać na katalog
  • w niektórych formatach systemu plików dowiązanie symboliczne może mieć inne uprawnienia niż plik, na który wskazuje (jest to rzadkie)

1
Ładna lista. Chciałem tylko dodać, że możesz również złamać dowiązanie symboliczne ścieżki względnej, przesuwając dowiązanie symboliczne.
jw013,

4
„Sam wpis [E] do katalogu to twardy link”. To doskonały punkt, którego nigdy wcześniej nie widziałem, ale martwię się, że ktoś, kto dopiero zaczyna owijać swoje lub rozglądać się za linkami, tego nie zrozumie. Dla tych, którzy znajdują się w tej sytuacji, podpowiedź: układ plików i katalogów, który widzisz po uruchomieniu polecenia ls, nie jest dokładnie taki sam jak reprezentowany przez niego system pamięci. Twarde linki to odniesienia do pojedynczego pliku w systemie pamięci masowej. Plik jest zapisywany raz. Przeczytaj o „i-węzłach”.
Mario,

@Mario: tak. Każda pozycja katalogu łączy nazwę z i-węzłem. Wywołanie systemowe do usunięcia nazwy pliku jest nawet wywoływane unlink(2). „normalne” pliki (z liczbą linków 1) to tylko szczególny przypadek. Jeśli to pomaga, możesz myśleć o i-węzłach jak o obiektach, a nazwy jak o wskaźnikach zliczonych ponownie (liczba łączy i-węzłów to liczba referencyjna).
Peter Cordes,

1
Można pomyśleć o dowiązaniu symbolicznym jako pliku tekstowym z nazwą. Jest interpretowany jako dowiązanie symboliczne ze względu na specjalną flagę do pliku. Przykłady linków, które znasz ..i ..
Ned64

oto kolejna odpowiedź, która wyjaśnia, dlaczego nie można tworzyć twardych linków do katalogów . Uważam tę odpowiedź za pomocną, ponieważ jest bardziej zwięzła i łatwiejsza do odczytania.
Trevor Boyd Smith

18

Celem obu rodzajów łączy jest zapewnienie sposobu, aby plik pojawiał się w dwóch lokalizacjach jednocześnie. Ma to wiele zastosowań. 9 razy na 10 chcesz użyć dowiązań symbolicznych.

Dowiązania symboliczne lub „dowiązania symboliczne” działają trochę jak skróty systemu Windows. Zawartość dowiązania symbolicznego jest wskaźnikiem do rzeczywistej lokalizacji pliku / katalogu. Jeśli usuniesz prawdziwy plik, dowiązanie symboliczne stanie się „wiszące” i nie będzie działać. Usunięcie dowiązania symbolicznego nie powoduje usunięcia rzeczywistego pliku. Możesz mieć dowolną liczbę dowiązań symbolicznych do jednego pliku (lub nawet innych dowiązań symbolicznych).

W przeciwieństwie do Windows działają one na poziomie systemu plików, a nie na poziomie powłoki lub aplikacji, więc prawie każda aplikacja będzie „podążać” za dowiązaniami symbolicznymi zgodnie z oczekiwaniami. ls -almoże być użyty jako szybki sposób na sprawdzenie, gdzie „linki” wskazują.

Twarde linki działają nawet na niższym poziomie. Hardlink to rzeczywista, fizyczna pozycja katalogu na poziomie systemu plików. Technicznie rzecz biorąc, pozycja katalogu jest dowiązaniem twardym, dlatego każdy plik ma gdzieś co najmniej jedno dowiązanie twarde w katalogu. Dowiązania twarde nie są oddzielone od pliku, na który wskazują; jeśli plik ma wiele dowiązań twardych w różnych katalogach, usunięcie dowiązania twardego za pomocą narzędzi takich jak rmnaprawdę nie usuwa pliku, dopóki wszystkie dowiązania twarde nie znikną.

Nie mogę wymyślić sytuacji, w których użycie linków twardych jest powszechne, a nawet potrzebne, chyba że celowo chcesz zapobiec usuwaniu plików lub wykonujesz dziwną pracę niskiego poziomu z partycjami lub innymi rzeczami związanymi z systemem plików. EDYCJA: W innych odpowiedziach na to pytanie są jednak świetne pomysły!


Ponadto dowiązania symboliczne mają uprawnienia takie jak normalne pliki, ale system operacyjny ich nie sprawdza, zamiast tego sprawdza plik docelowy uprawnień, aby zdecydować o zachowaniu. I nie rób okrągłych łańcuchów dowiązań symbolicznych. Bardzo źle.
LawrenceC,

3
Czy to naprawdę bardzo źle? Co się stanie? Najbardziej ekscytujące, jakie mogę odtworzyć, to komunikaty o błędach „Zbyt wiele poziomów dowiązań symbolicznych”.
mattdm,

1
ls -lwystarczy zobaczyć, co łączy dowiązanie symboliczne, aoznacza --all, zobacz stronę. Nawet jeśli dowiązania symboliczne działają w systemie plików, istnieją alternatywne funkcje, które mogą wykorzystywać dowiązania symboliczne jako pliki zamiast podążać za nimi.
D4RIO,

4
Skróty systemu Windows różnią się w rzeczywistości od dowiązań symbolicznych: podążają za celem i są również zwykłymi plikami. (Windows ma również dowiązania symboliczne, ale nie są one często używane). Dowiązania symboliczne są czysto tekstowe, tekst docelowy jest odczytywany przy każdym dostępie do pliku. To, czy uprawnienia do dowiązania symbolicznego mają znaczenie, zależy od systemu operacyjnego i systemu plików.
Gilles „SO- przestań być zły”

AFAIK, zawartość pliku dowiązania symbolicznego jest ścieżką, na którą wskazuje dowiązanie symboliczne, którą można zobaczyć, patrząc na rozmiar pliku dowiązania symbolicznego: ln -s /home 1; ls -l 1pokazuje, że dowiązanie symboliczne 1 ma 5 bajtów, podczas gdy ln -s /usr/share/ 2; ls -l 2showas ma długość 11 bajtów.
Daniel Kullmann

13

Twarde linki są bardzo przydatne w przypadku mechanizmów tworzenia kopii zapasowych na dyskach, ponieważ dla każdej kopii zapasowej można mieć pełne drzewo katalogów, udostępniając jednocześnie miejsce na pliki, które nie uległy zmianie - a system plików śledzi liczenie referencji, więc kiedy ostatnie odniesienie do dana wersja znika, ponieważ kopia zapasowa wygasła / została usunięta z powodu miejsca, miejsce, które wykorzystała, jest automatycznie odzyskiwane. Z tego samego powodu niektórzy klienci poczty używają go również do wiadomości składanych w wielu folderach.


5
Może mechanizmy kontroli wersji na dysku? Jeśli coś dowiązasz na stałe, to nie jest to kopia zapasowa. Jeśli oryginalny plik zostanie uszkodzony, każde twarde łącze do niego również zostanie uszkodzone.
D4RIO,

1
Pomyśl o inkrementalnych systemach tworzenia kopii zapasowych, takich jak Time Machine firmy Apple. (Powinno być oczywiste, że nie są to kopie zapasowe typu odzyskiwania po awarii, ale kopie zapasowe „ups, usunąłem ten plik przez przypadek”). Wszystkie niezmienione pliki w przyrostowej kopii zapasowej są połączone razem; kiedy plik zostanie zmieniony, następny przyrostowy plik zostanie skopiowany zamiast linku do poprzedniej wersji.
geekozaur

Dzięki, w ten sposób przyrostowe systemy tworzenia kopii zapasowych są bardzo podobne do systemów kontroli wersji w ten sposób = D
D4RIO

Ale w jaki sposób przyrostowy mechanizm tworzenia kopii zapasowych chroni „starą” wersję pliku? 1) Kopia zapasowa Utworzony, to plik F; 2) Plik F zmodyfikowany; 3) Następnego dnia utworzono kopię zapasową B ... Wygląda na to, że czegoś nie dostaję
Dmitrij Paszkiewicz

3

Dowiązania twarde to tylko odniesienia do tych samych przestrzeni dyskowych, dlatego „dlaczego” nie można dowiązać czegoś w innym systemie plików.

Dowiązania symboliczne to pliki łączące inne pliki (jako skróty systemu Windows), być może w tym samym systemie plików, a może nie.

EDYCJA: Wyjaśnię coś więcej. Każdy istniejący plik ma co najmniej 1 twardy link. Twarde linki to sposób na dostęp do zawartości i-węzła systemu plików. Możesz uzyskać numer i-węzła pliku za pomocą ls -ii uzyskać liczbę twardych dowiązań statw następujący sposób:

$ stat plantilla-disenos.odt 
  File: «plantilla-disenos.odt»
  Size: 12367       Blocks: 32         IO Block: 4096   fichero regular
Device: 803h/2051d  Inode: 319875      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   d4rio)   Gid: ( 1000/   d4rio)
Access: 2011-02-11 21:36:19.000000000 -0300
Modify: 2010-03-02 23:27:28.000000000 -0300
Change: 2010-04-10 17:46:27.000000000 -0300

Dzięki @geekosaur za odniesienie:

Jądro musi zrestartować tłumaczenie ścieżka-nazwa-i-i-węzeł (przejście przez drzewo katalogów), aby rozwinąć dowiązania symboliczne, podczas gdy wszystkie dowiązania twarde używają tego samego i-węzła. (Często widuje się to jako namei, od nazwy funkcji jądra, która zrobiła to w tradycyjnym Uniksie).

i to (edytowane):

Twarde łącza są bardzo przydatne w przypadku mechanizmów tworzenia przyrostowych kopii zapasowych na dyskach , takich jak Time Machine firmy Apple , ponieważ dla każdej kopii zapasowej można mieć pełne drzewo katalogów, udostępniając jednocześnie przestrzeń dla plików, które nie uległy zmianie - a system plików śledzi liczenie referencji, więc gdy ostatnie odniesienie do danej wersji zniknie, ponieważ kopia zapasowa wygasła / została usunięta z powodu miejsca, miejsce, które wykorzystała, zostaje automatycznie odzyskane. Z tego samego powodu niektórzy klienci poczty używają go również do wiadomości składanych w wielu folderach.

Twoje zdrowie


Czy korzyści płynące z używania twardych linków są większe? Lub dlaczego miałbyś używać twardego linku zamiast dowiązania symbolicznego?
ripper234

Jądro musi zrestartować tłumaczenie ścieżka-nazwa-i-i-węzeł (przejście przez drzewo katalogów), aby rozwinąć dowiązania symboliczne, podczas gdy wszystkie dowiązania twarde używają tego samego i-węzła. (Często widuje się to jako nameinazwę funkcji jądra, która zrobiła to w tradycyjnym Uniksie).
geekozaur

@ ripper234: Hardlinks to rozwiązania oszczędzające miejsce na dysku. Nie musisz wiedzieć o systemie plików, aby utworzyć dowiązanie symboliczne, ale musisz pomyśleć przed utworzeniem dowiązań symbolicznych, ponieważ możesz utworzyć pętlę lub ścieżkę długiej rozdzielczości, więc funkcje takie statzawiodą.
D4RIO,

@geekosaur: Dodam twoją odpowiedź do mojej, ponieważ jest bardzo przydatna
D4RIO

Nie ma problemu. Właściwie zacząłem pisać to jako komentarz do twojego, ale komentarze są za krótkie.
geekozaur

3

Miękki link wskazuje inną nazwę ścieżki. Ta nazwa ścieżki może, ale nie musi istnieć. Ścieżka nie jest szukana, dopóki nie uzyskasz dostępu do dowiązania symbolicznego. Jeśli ścieżka nie istnieje, gdy próbujesz uzyskać do niej dostęp, masz zepsute dowiązanie symboliczne.

Za pomocą twardego łącza masz jeden plik o wielu nazwach. Nie można powiedzieć, że jeden z nich to „prawdziwy” plik, a pozostałe to tylko link do niego. Wszystkie są równe. Nie ma czegoś takiego jak zepsuty twardy link, tak jak są zepsute dowiązania symboliczne.

Twarde linki działają tylko w ramach jednego systemu plików. Jeśli chcesz utworzyć łącze do pliku w innym systemie plików (np. Innej partycji lub udziale sieciowym), musisz użyć miękkiego łącza.

Kolejną dużą różnicą jest to, co dzieje się po usunięciu połączonego pliku. Jeśli usuniesz jeden z pary plików połączonych na stałe, a następnie utwórz nowy plik o tej samej nazwie, będziesz mieć dwa osobne pliki (łącze zniknęło). Jeśli usuniesz cel dowiązania symbolicznego i utworzysz nowy plik o tej samej nazwie, link wskaże nowy plik.


3

„twarde” łącza mają ten sam i-węzeł

$ touch foo
$ ln foo foolink # Creates a hard  link
$ ls -li foo foolink
54996 -rw-r--r-- 2 bsd users 0 2011-12-11 09:06 foo
54996 -rw-r--r-- 2 bsd users 0 2011-12-11 09:06 foolink

Jeśli edytuję foo lub foolink, jest tylko jeden plik i zostanie on zaktualizowany. Jeśli usunę tylko jedną nazwę pliku, i-węzeł i dane pozostaną, foolink przetrwa.

$ rm foo
$ ls -li foo foolink
ls: cannot access foo: No such file or directory
54996 -rw-r--r-- 1 bsd users 0 2011-12-11 09:06 foolink

Gdybym miał stworzyć to samo, ale z „miękkim” lub dowiązaniem symbolicznym, to jest jeden plik, jeden i-węzeł i nowy plik z własnym i-węzłem wskazującym na pierwszy.

$ touch foo
$ ln -s foo foolink # Create symlink
$ ls -li foo foolink
55029 -rw-r--r-- 1 bsd users 0 2011-12-11 09:11 foo
55033 lrwxrwxrwx 1 bsd users 3 2011-12-11 09:11 foolink -> foo

Jeśli zmienię foo lub foolink, nadal będzie tylko jeden plik i zostanie on zaktualizowany.

Jeśli usunę tylko symboliczne łącze, i-węzeł i dane pozostaną. Jeśli usunę foo, dane znikną, dowiązanie symboliczne pozostanie, ale wskaże nieistniejący plik.

$ rm foo
removed `foo'
$ ls -l foo foolink 
ls: cannot access foo: No such file or directory
lrwxrwxrwx 1 bsd bsd 3 2011-12-11 09:11 foolink -> foo

1
Ale jaki jest praktyczny przypadek użycia tego?
ewwhite

1
Jedno zastosowanie, tak samo jak „skrót”. Inne zastosowanie, posiadające wiele wersji aplikacji w systemie, pozwala zainstalować, przetestować nową wersję, określając aplikację pełną ścieżką, a dowiązanie symboliczne w bin wskazuje na produkcję. Po zakończeniu testowania zmień dowiązanie symboliczne na nową wersję, pozostaw starą wersję dla wszystkich użytkowników, którzy mają kod zależny od wersji. Pomyśl o perlu, python itp.
bsd

1
praktyczny futerał na twarde linki. Obecnie w moim systemie plików znalazłem dużą liczbę dowiązań twardych w / usr / share / zoneinfo Pomyśl o wszystkich nazwanych plikach reprezentujących strefy czasowe, które są identyczne z EST. Oszczędzamy przestrzeń systemu plików, ponieważ nie mamy nadmiarowych kopii, i pozwalamy na łatwiejsze zarządzanie pakietami bez konieczności instalowania / usuwania obciążeń związanych z łączami symbolicznymi podczas instalowania / usuwania pakietów. Nawet jeśli zostanie usunięty, oryginalne dane zostaną zachowane. Przepraszam, że nie miałem czasu na bardziej pedantyczne wyjaśnienie.
bsd,

1

Twarde linki to dodatkowe pozycje katalogu dla tego samego pliku. To znaczy

  • Wszystkie twarde łącza do pliku muszą znajdować się w tym samym systemie plików (ponieważ pozycja katalogu nie może wskazywać pliku w innym systemie plików), ale niekoniecznie w tym samym katalogu.
  • Nie ma różnicy między oryginalną pozycją katalogu a nowym twardym linkiem; z punktu widzenia systemu operacyjnego są to tylko dwa wpisy katalogu do tego samego pliku. Plik jest usuwany tylko wtedy, gdy wszystkie twarde linki zostaną usunięte (a dodatkowo nie ma procesu, w którym ten plik byłby nadal otwarty).
  • Jeśli przeniesiesz / zmienisz nazwę „oryginału”, o ile nie przeniesiesz go do innego systemu plików, nie będzie to miało wpływu na inne twarde łącza; nadal wskazują ten sam plik.
  • Wielu redaktorów nie zapisuje nowej zawartości do tego samego pliku podczas zapisywania, ale wykonuje następującą procedurę:

    1. Napisz nową zawartość do nowego pliku.
    2. Zmień nazwę starego pliku na nazwę kopii zapasowej (lub, jeśli nie zachowujesz kopii zapasowych poprzedniej wersji pliku, po prostu usuń go).
    3. Zmień nazwę nowo zapisanego pliku na nazwę poprzedniego pliku.

    Ten schemat oznacza, że ​​wszelkie inne twarde łącza do tego samego pliku nie będą już wskazywały na bieżący plik, ale na poprzednią wersję (jest to prawdą nawet w przypadku, gdy edytor usuwa stary plik, ponieważ w Uniksie „usuwa” plik oznacza po prostu usunięcie jego łącza; tylko jeśli usunięty link jest jedynym łączem, plik zostanie usunięty).

  • Ponieważ twardy link prowadzi bezpośrednio do pliku, możesz uzyskać dostęp do tego pliku, nawet jeśli nie masz dostępu do oryginalnej lokalizacji tego pliku (na przykład ponieważ nie masz żadnych uprawnień do katalogu, w którym znajduje się oryginalny wpis) . Jedynymi prawami określającymi twój dostęp są prawa dostępu do samego pliku (które są powiązane z plikiem, a nie z linkiem; nie możesz tworzyć twardych linków z różnymi uprawnieniami do tego samego pliku) oraz prawa dostępu do ścieżki twardego linku jest zawarty (w zasadzie, prawa do wykonywania w katalogu, w którym znajduje się link, oraz w bezpośrednich i pośrednich katalogach nadrzędnych).

Z drugiej strony, dowiązania symboliczne przechowują nazwę ścieżki (nazwę pliku - a raczej jego pozycję katalogu - potencjalnie włączając jego ścieżkę, jak /bin/shlub subdir/foo.bar) - innego pliku. Jeśli nazwa ścieżki jest względna, zawsze jest interpretowana względem katalogu, w którym znajduje się link. Oznacza to:

  • Dowiązanie symboliczne może odnosić się do plików w innym systemie plików (nawet do systemu plików, który sam nie obsługuje twardych lub miękkich linków, takich jak FAT).

  • Jeśli oryginalny plik zostanie usunięty, dowiązanie symboliczne nie zachowuje zawartości pliku. O ile nie ma innych twardych linków do tego samego pliku, zawartość pliku zniknie. Dowiązanie symboliczne pozostanie wtedy wiszące (to znaczy, odnoszące się do nazwy ścieżki, która nie odpowiada wpisowi do katalogu). Z drugiej strony usunięcie dowiązania symbolicznego nie wpływa na oryginalny plik, ponieważ odnosi się tylko do jego ścieżki.

  • Jeśli oryginalny plik zostanie przeniesiony lub jego nazwa zostanie zmieniona, dowiązanie symboliczne nie zostanie zaktualizowane, ale pozostanie wiszące. Przesunięcie dowiązania symbolicznego powoduje jego zerwanie tylko wtedy, gdy zawiera ścieżkę względną, a ścieżka nie jest już ważna od nowej pozycji.

  • Jeśli oryginalny plik zostanie zastąpiony nowym plikiem o tej samej nazwie (jak w opisanym powyżej scenariuszu edytora), łącze odnosi się do nowego pliku.

Większość zastosowań twardych linków to w zasadzie sposób na posiadanie kopii pliku bez konieczności dwukrotnego przechowywania zawartości pliku. Działa to najlepiej, jeśli pliki nigdy nie zostaną ponownie zmienione, ponieważ w przeciwnym razie łatwo jest przypadkowo przerwać łącze (patrz scenariusz edytora powyżej). Są oczywiście przypadki, w których chcesz, aby łącze zostało zerwane, tak jak w przypadku przechowywania kilku kopii zapasowych: W przypadku plików, które zmieniły się w nowszych kopiach zapasowych, nie chcesz, aby kopia w starszych kopiach zapasowych również uległa zmianie.

Zwykle, jeśli chcesz link, użyjesz dowiązania symbolicznego. Jednym z przykładów jest przeniesienie katalogu na inną partycję (ponieważ ta, na której jest on zapełniony), można ustawić miękkie łącze ze starej pozycji do nowej, więc wszelkie programy próbujące uzyskać dostęp do katalogu w starym miejscu zamiast tego wejdź do niego w nowym miejscu. Nie byłoby to możliwe w przypadku twardych linków. Należy jednak pamiętać, że dowiązania symboliczne w przeniesionym katalogu mogą ulec uszkodzeniu, jeśli zawierają ścieżki względne, które prowadzą z przeniesionego katalogu.


1

HARD LINK (tylko pliki) vs SOFT LINK (pliki lub katalogi) vs BIND (HARD LINK dla katalogów)

ZOBACZ TEN OBRAZ PRZED CZYTANIEM
(źródło: freesoftwareservers.com )

Podczas gdy odpowiedź daxelroda dobrze wyjaśnia pytanie, pomyślałem, że obraz w tym przypadku zrobił dużą różnicę, szczególnie dla początkujących, którzy jeszcze nie rozumieją i-węzłów i skomplikowanego żargonu Linuksa.

Pomyśl o tym, jeśli „usunąłeś” wszystko z dysku, możesz uruchomić oprogramowanie, aby przywrócić dane, ponieważ jedynki i zera wciąż tam są, po prostu usunąłeś wszystkie twarde linki. Oprogramowanie Recovery Software ma na celu odbudowanie twardych linków, aby nadać sens zerom i jedynkom

Przeczytałem świetny „jeden linijka”, który nadał temu sensowi, i chciałem się nim podzielić!

Wszystkie pliki w systemie Linux są „twardymi linkami” do zer i jedynek na dysku. Podczas tworzenia danych (0 i 1) system operacyjny tworzy Hard Link w drzewie plików w celu odniesienia do tego miejsca na dysku twardym.

Utwórz HARD LINK 2 i usuń oryginalny plik HARD LINK 1 :

Możesz utworzyć kolejny twardy link i usunąć oryginalny plik, i nadal masz dostęp do nowo utworzonego twardego łącza.

Usuń PLIK (HARD LINK 1), który jest SOFT LINKed do:

Jeśli usunąłeś HARD LINK 1, czy uważasz, że SOFT LINK będzie działał? Nie, system operacyjny zgłosi, że HARD LINK 1 nie istnieje.

Usuń SOFT LINK do HARD LINK:

Odwrotnie, jeśli usuniesz SOFT LINK, czy będzie działać HARD LINK? Tak. Tak długo, jak system operacyjny ma jeden plik HARD LINK , zgłosi, że wypełnienie nie zostało usunięte.

- Warto również zbadać / zwrócić uwagę na BIND, sposób na ZWIĄZANIE dwóch katalogów, takich jak symlinkowanie dwóch katalogów, ale jest on przejrzysty dla systemu operacyjnego (systemy operacyjne mogą stwierdzić, kiedy Symlink i niektóre mają zasady dotyczące pogody, że mogą śledzić Symlinks). Wykorzystuje Mount, a nie LS i można go skonfigurować za pomocą FSTAB.

Co to jest mocowanie BIND


1
To dość ambitny wysiłek, szczególnie w przypadku pierwszego postu. Niestety uważam, że dodanie materiału na temat „bind” (o co nie został poproszony) po prostu dezorientuje sprawy; tym bardziej, że wydaje się, że nie starałeś się zbytnio wyjaśniać montażu „wiążącego”. Ponadto bardzo dobrze rozumiem linki twarde i miękkie / symboliczne i ledwo rozumiem twoje zdjęcie. Byłbym bardzo zaskoczony, gdyby początkujący mógł się z tego czegoś nauczyć.
G-Man,

Chociaż możesz symbolizować katalogi, pokazuje się w systemie plików jako symlink, jeśli BIND, jest przezroczysty dla systemu operacyjnego. Pokazuje się jak plik.
FreeSoftwareServers

1
(1) W rzeczywistości, przynajmniej na niektórych wersjach systemu Linux, to może wiązać zamontować plik. (2) Podczas gdy podłączenia mount wyglądają bardzo podobnie do dowiązań twardych, powiedzenie „Bind jest po prostu to samo co dowiązanie twarde (z wyjątkiem tego, że nie można dowiązać katalogu na stałe)” jest po prostu błędne.
G-Man

@ G-Man, uzgodniony i usunięty, z tylko notatką o BIND
FreeSoftwareServers

@Darmowy faktycznie miękki link wskazuje nazwę pliku (twardy link 1); schematy powinny uczynić to oczywistym.
JB.

0

Twardy link będzie przechowywać plik na dysku, dopóki nie zostaną usunięte wszystkie twarde linki, nawet pierwsze („nazwa pliku” to technicznie twardy link). Miękkie łącze może pozostać „wiszące”, dopóki plik, na który wskazuje (s / ed), nie zostanie zastąpiony.


0

To bardzo stare pytanie, ale mam przypadek użycia, który wymaga ode mnie używania twardych linków.

Jestem muzykiem, więc mam wiele różnych plików audio na różnych dyskach twardych podłączonych do mojego komputera Mac. Warto terabajtów. Mam je w większości bardzo ładnie zorganizowane z katalogami dowiązań symbolicznych, dzięki czemu mogę je znaleźć według wydawcy treści, stylu / dźwięku i innych kryteriów opartych na tym, co myślę w tym czasie. Niestety jeden program, którego używam, Ableton Live, jest całkowicie niezdolny do wyświetlania aliasów lub dowiązań symbolicznych z przeglądarki plików. Jedynym rozwiązaniem, jakie znalazłem, jest utworzenie twardych linków do katalogów, w których chcę, aby był w stanie zobaczyć, a wtedy wszystko działa świetnie.

Jest to kolejny przypadek, w którym może być konieczne użycie twardych linków, które mogły nie wystąpić u innych.


Złożyłbym raport o błędzie dla Ableton Live. Może są w stanie to naprawić.
aventurin

Tak, już od lat wiele narzeka na ten temat na forach abletons… Wydaje się, że nie podejmują żadnych prób rozwiązania tego problemu, chociaż nie mogę zrozumieć, dlaczego.
Jonathan van Clute
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.