I collegamenti fissi non sono consentiti perché porterebbero a cicli. Una volta abilitati i cicli, è necessario eseguire una garbage collection mark-and-sweep per rilevare quando i cicli isolati di directory (non più raggiungibili dalla root) possono essere eliminati definitivamente - questo è estremamente costoso su disco.
link soft non causano questo problema perché non sollevano il conteggio dei riferimenti della directory mirato; in questo modo è ancora possibile scappare con il conteggio dei riferimenti (con un massimo di un riferimento :).
L'altro problema è che i programmi che attraversano il file system (ad esempio, find
) devono evitare cicli. possono fare ciò ricordando ogni numero di inode che hanno visto, ma questo è costoso, se sono in grado di distinguere tra i collegamenti che potrebbero portare a cicli (ad esempio, collegamenti software) e collegamenti che non portano a cicli (voci di directory normali) e salta i softlink, non hanno più bisogno di rintracciare i numeri di inode.
Per evitare cicli. – bmargulies
@bmargulies Allora perché è possibile con i softlink – user567879
Perché il kernel non li segue nella traversal fondamentale della gerarchia di directory. Può camminare sull'albero, perché non attraversa i collegamenti morbidi quando cammina l'albero. – bmargulies