2010-06-04 16 views
14

Si tengo una carpeta que tiene enlaces suaves, ¿intentará seguir esos enlaces y eliminar la carpeta correspondiente, o simplemente los desvincula?Eliminación de una carpeta que contiene enlaces simbólicos

tengo una copia de mi directorio personal con los enlaces simbólicos en el mismo, y tengo miedo a rm -rf que en caso de que sigue estos lazos y hace saltar las carpetas correspondientes ...

Respuesta

7

Nº rm-rf no seguirá enlaces simbólicos, simplemente los eliminará.

% mkdir a                
% touch a/foo 
% mkdir b                
% ln -s a b/a               
% rm -rf b                
% ls a                 
foo 
14

En general, rm no "elimina". Se "desvincula". Esto significa que las referencias a un archivo se eliminan por rm. Cuando el número de referencias llega a cero, el archivo ya no será accesible y, a su debido tiempo, el área del disco donde se encuentra se usará para otra cosa.

Cuando rm un directorio, las cosas dentro del directorio están desvinculadas. Los enlaces simbólicos son (algo así como) archivos con el nombre de sus objetivos dentro de ellos y, por lo tanto, simplemente se eliminan. Comprender realmente a qué apuntan y luego desvincular el objetivo es un trabajo especial, por lo que no lo hará una herramienta genérica.

0

Aquí es axample:

find a b 

a 
a/1 
a/2 
b 

ll 

drwxr-xr-x 2 ****** ****** 4.0K Feb 6 15:11 a 
lrwxrwxrwx 1 ****** ****** 1 Feb 6 15:13 b -> a 

.

rm -rf b 

da

find a b 

a 
a/1 
a/2 

.

rm -rf b/ 

da error:

rm: cannot remove `b/': Not a directory 

Conclusión:

rm no sigue los enlaces simbólicos

Cuestiones relacionadas