Si un archivo es vinculado a sí mismo, entonces no hay datos presentes y cualquier intento de acceder a ellos resultará en un bucle y, en última instancia, en un error
por ejemplo
$ 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
Dado que no hay datos, al eliminar estos enlaces simbólicos no se perderán datos, porque hay no hay datos para conservar.
Si no obtiene el Too many levels of symbolic links
error cuando intentas cat
el archivo entonces su archivo es no un enlace a sí mismo.
ln
nunca sobrescribir un archivo con un enlace a sí mismo. Puede obtener un archivo vinculado a sí mismo con:
$ ln -s `pwd`/myfile myfile
$ ls -l myfile
lrwxrwxrwx 1 grochmal users 25 Sep 10 03:41 myfile -> /home/grochmal/tmp/myfile
Pero si intenta con un archivo que contiene datos:
$ rm -f myfile
$ echo yay > myfile
$ ln -sf `pwd`/myfile myfile
ln: '/home/grochmal/tmp/myfile' and 'myfile' are the same file
ln
, por otro lado, sobrescribirá un archivo con un enlace a otro archivo.
Sin embargo, puede estar bastante seguro de que un enlace a sí mismo es un archivo que nunca tuvo datos (o que se eliminó explícitamente antes de la creación del enlace suave).
(en Linux y usando ln
de coreutils
, eso es)