Czy dowiązanie symboliczne / miękkie jest podobne do skrótu / aliasu na pulpicie?

19

Wydaje mi się, że podstawowa koncepcja linków miękkich / symbolicznych w porównaniu ze skrótami (na PC) lub aliasami (na Macu) to to samo. Czy jestem daleko? Czy są podobne?

Marty
źródło

Odpowiedzi:

14

Podstawowy pomysł jest mniej więcej taki sam. Dowiązanie symboliczne to specjalny plik zawierający ścieżkę (względną lub bezwzględną) do innego obiektu systemu plików. W systemach UNIX / Linux sam system operacyjny przetwarza dowiązanie symboliczne, bezbarwnie tłumacząc rzeczywisty obiekt.

Na komputerach Mac alias wydaje się być specjalną konstrukcją Findera, która może odnosić się zarówno do obiektów zdalnych, jak i lokalnych, ale Finder rozpoznaje odniesienie, a nie system operacyjny. MacOS X ma również dowiązania symboliczne, ale są one oddzielone od aliasów.

Duża różnica polega na skrócie Windows i dowiązaniu symbolicznym. Skrót systemu Windows nie może łatwo zastąpić programu, ponieważ system Windows zawsze musi mieć te nieznośne rozszerzenia plików, a plik „lnk” nie jest wykonywalny, jeśli chodzi o system Windows. W GUI to działa, ale z punktu widzenia serwera to barfs. To samo z katalogiem. Są przydatne, ale nie mają nigdzie mocy i elastyczności dowiązania symbolicznego.

Arcege
źródło
„To samo z katalogiem”: Czy masz na myśli, że nie można cd w dowiązaniu symbolicznym prowadzącym do katalogu?
dash17291
2
Oznacza to, że nie można cd do skrótu w systemie Windows, ponieważ jest to konstrukcja Windows, a nie DOS. W systemie UNIX / Linux jest to konstrukcja systemu plików, więc będzie działać w dowolnym miejscu, w tym w cdpoleceniu - do polecenia należy interpretacja punktu końcowego, a nie systemu operacyjnego. Na przykład cdmoże użyć dowiązania symbolicznego do katalogu, ale poprawnie zawiedzie dowiązanie symboliczne do zwykłego pliku.
Arcege
7

Nie całkiem. Istnieje podobieństwo, ale tylko do pewnego stopnia. Wiem, że ludzie myślą: „ok, dowiązania symboliczne są jak skróty, ale nie do końca je rozumiem” do tego stopnia, że ​​powiedzieli „och, faktycznie dowiązania symboliczne nie są jak skróty, a teraz je rozumiem”. Dlatego uważam, że skróty nie są dobrym sposobem na zrozumienie dowiązań symbolicznych i zalecam oczyszczenie się z porównania ze skrótami.

Łącze symboliczne wskazuje nazwę innego pliku. To jest „nazwa” jak w pełnej ścieżce, tzn. Potencjalnie zawiera część katalogu, a także nazwę wewnątrz katalogu. Ścieżka może być absolutna ( /foo/bar) lub względne ( foo/barlub ../barlub po bar); jeśli cel jest podany przez ścieżkę względną, jest interpretowany względem katalogu zawierającego dowiązanie symboliczne. Plik docelowy może istnieć lub nie, a usunięcie, przeniesienie lub utworzenie pliku docelowego nie wpłynie na łącze symboliczne.

Operacje, które działają na zawartość pliku, działają na plik docelowy. Tak więc, gdy czytasz lub zapisujesz plik poprzez dowiązanie symboliczne, lub wykonujesz program przez dowiązanie symboliczne, to tak, jakbyś miał dostęp do pliku docelowego. Operacje, które działają na plik z zewnątrz, takie jak zmiana nazwy lub usuwanie, działają na samym dowiązaniu symbolicznym. Pamiętaj, że przy pisaniu ma znaczenie to, czy zastąpisz istniejący plik (który będzie działał na celu), czy usuniesz istniejący plik i utworzysz nowy plik (który pozostawi nienaruszony cel i utworzy nowy plik zastępujący dowiązanie symboliczne, chyba że aplikacja dba o link (wiele osób robi to).

Gilles „SO- przestań być zły”
źródło
1
Dowiązanie symboliczne nie zawsze stanowi pełną ścieżkę: w moim systemie Slackware 13.1 /usr/lib/libXv.so jest dowiązaniem symbolicznym do libXv.so.1.0.0. Nie ma tam pełnej ścieżki.
Bruce Ediger,