Risposte:
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.
cd
comando: spetta al comando interpretare il punto finale, non il sistema operativo. Ad esempio, cd
potrebbe utilizzare un collegamento simbolico a una directory, ma fallirebbe correttamente su un collegamento simbolico a un file normale.
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/bar
o ../bar
o 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)).