Un collegamento simbolico / soft è simile a un collegamento / alias su un desktop?


19

Mi sembra che l'idea di base dei collegamenti soft / simbolici rispetto alle scorciatoie (su un PC) o agli alias (su un Mac) siano la stessa cosa. Sono lontano? Sono simili?

Risposte:


14

L'idea di base è la stessa. Un collegamento simbolico è un file speciale che contiene un percorso (relativo o assoluto) a un altro oggetto filesystem. In UNIX / Linux, il sistema operativo stesso elabora il collegamento simbolico, risolvendo l'oggetto reale in modo trasparente.

Sui Mac, un alias sembra essere un costrutto Finder speciale in grado di fare riferimento a oggetti remoti e locali, ma Finder risolve il riferimento, non il sistema operativo. MacOS X ha anche collegamenti simbolici, ma sono separati dagli alias.

La grande differenza è tra un collegamento di Windows e un collegamento simbolico. Un collegamento di Windows non può facilmente sostituire un programma perché Windows deve sempre avere queste fastidiose estensioni di file e un file "lnk" non è un eseguibile quando si tratta di Windows. All'interno della GUI, funziona, ma dal punto di vista del server, blocca. Lo stesso con una directory. Sono utili, ma non hanno nulla vicino al potere e alla flessibilità di un collegamento simbolico.


"Lo stesso con una directory": Vuoi dire che non è possibile eseguire il cd in un collegamento simbolico che punta a una directory?
dash17291,

2
Ciò significa che non è possibile eseguire il cd in un collegamento su un sistema Windows poiché si tratta di un costrutto Windows, non di DOS. Con UNIX / Linux, è un costrutto di filesystem, quindi funzionerà ovunque, incluso il cdcomando: spetta al comando interpretare il punto finale, non il sistema operativo. Ad esempio, cdpotrebbe utilizzare un collegamento simbolico a una directory, ma fallirebbe correttamente su un collegamento simbolico a un file normale.
Arcege,

7

Non proprio. C'è una somiglianza, ma solo fino a un certo punto. Ho conosciuto persone che pensano "ok, i collegamenti simbolici sono come scorciatoie, ma non li capisco del tutto" fino al punto in cui hanno detto "oh, in realtà i collegamenti simbolici non sono come scorciatoie, e ora li capisco". Quindi penso che le scorciatoie non siano un buon modo per comprendere i collegamenti simbolici e consiglio di chiarire la tua mente sul confronto con le scorciatoie.

Un collegamento simbolico indica il nome di un altro file. Questo è "nome" come nel percorso completo, vale a dire che include potenzialmente una parte della directory e il nome all'interno della directory. Il percorso può essere assoluto ( /foo/bar) o relativo ( foo/baro ../baro solo bar); se la destinazione è data da un percorso relativo, viene interpretata rispetto alla directory che contiene il collegamento simbolico. Il file di destinazione può esistere o meno e la rimozione, lo spostamento o la creazione del file di destinazione non influirà sul collegamento simbolico.

Le operazioni che agiscono sul contenuto del file agiscono sul file di destinazione. Pertanto, quando leggi o scrivi su un file tramite un collegamento simbolico o esegui un programma tramite un collegamento simbolico, è come se stessi accedendo al file di destinazione. Le operazioni che agiscono su un file dall'esterno, come la ridenominazione o l'eliminazione, agiscono sul collegamento simbolico stesso. Si noti che per la scrittura, fa la differenza se si sovrascrive il file esistente (che agirà sulla destinazione) o si rimuove il file esistente e si crea un nuovo file (che lascerà intatta la destinazione e creerà un nuovo file in sostituzione del collegamento simbolico, a meno che l'applicazione si preoccupa di seguire il link (molti lo fanno)).


1
Un collegamento simbolico non costituisce sempre un percorso completo: sul mio sistema Slackware 13.1, /usr/lib/libXv.so è un collegamento simbolico a libXv.so.1.0.0. Nessun percorso completo lì.
Bruce Ediger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.