Su Linux, quando crei una cartella, crea automaticamente due hard link all'inode corrispondente. Una è la cartella che hai chiesto di creare, l'altra è la .
cartella speciale in questa cartella.
Esempio:
$ mkdir folder
$ ls -li
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder
$ ls -lai folder
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 .
124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 ..
Come puoi vedere, entrambi folder
e .
all'interno folder
hanno lo stesso numero di inode (mostrato con -i
opzione).
Esiste un modo per eliminare questo .
hardlink speciale ?
È solo per sperimentazione e curiosità.
Suppongo anche che la risposta potrebbe applicarsi anche a ..
file speciali.
Ho provato a guardare rm
nell'uomo ma non sono riuscito a trovare alcun modo per farlo. Quando provo a rimuovere .
tutto ciò che ottengo è:
rm: "." e ".." non possono essere rimossi
Sono davvero curioso di sapere come funzionano queste cose, quindi non astenermi dall'essere molto prolisso sull'argomento.
EDIT: Forse non ero chiaro con il mio post, ma voglio capire il meccanismo sottostante responsabile dei .
file e i motivi per cui non possono essere eliminati.
So che lo standard POSIX non consente una cartella con meno di 2 hardlink, ma non capisco perché. Voglio sapere se è possibile farlo comunque.