Se un file è collegato simbolicamente a se stesso, non ci sono dati presenti e qualsiasi tentativo di accedervi risulterà in un ciclo e, infine, in un errore
es
$ ls -l myfile
lrwxrwxrwx 1 sweh sweh 19 Sep 9 22:38 myfile -> /path/to/here/myfile
$ cat myfile
cat: myfile: Too many levels of symbolic links
Poiché non ci sono dati, l'eliminazione di questi collegamenti simbolici non comporta la perdita di dati, perché c'è nessun dato da conservare.
Se non ottieni il Too many levels of symbolic links
errore quando provi a cat
il file allora il tuo file non un collegamento a se stesso.
ln
mai sovrascrivere un file con un collegamento a se stesso. Puoi ottenere un file collegato a se stesso con:
$ ln -s `pwd`/myfile myfile
$ ls -l myfile
lrwxrwxrwx 1 grochmal users 25 Sep 10 03:41 myfile -> /home/grochmal/tmp/myfile
Ma se provi con un file che contiene dati:
$ rm -f myfile
$ echo yay > myfile
$ ln -sf `pwd`/myfile myfile
ln: '/home/grochmal/tmp/myfile' and 'myfile' are the same file
ln
, d'altra parte, sovrascriverà un file con un collegamento a un altro file.
Tuttavia, puoi essere abbastanza sicuro che un collegamento a se stesso sia un file che non ha mai avuto dati (o è stato eliminato esplicitamente prima della creazione del collegamento software).
(su Linux e usando ln
da coreutils
, cioè)