2010-06-04 5 views
14

Si un dossier comportant des liens logiques est présent, tentera-t-il de suivre ces liens et de supprimer le dossier correspondant, ou les supprimera-t-il simplement?Suppression d'un dossier contenant des liens symboliques

J'ai une copie de mon répertoire personnel avec des liens symboliques, et je suis peur de rm -rf dans le cas où il suit ces liens et explose les dossiers correspondants ...

Répondre

7

n ° rm -rf ne suivra pas les liens symboliques - il les supprimera simplement.

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

En règle générale, rm ne "supprime" pas. Cela "délie". Cela signifie que les références à un fichier sont supprimées par rm. Lorsque le nombre de références atteint zéro, le fichier ne sera plus accessible et à temps, la zone du disque où il réside sera utilisée pour autre chose.

Lorsque vous rm un répertoire, le contenu du répertoire est dissocié. Les liens symboliques sont (en quelque sorte) des fichiers avec le nom de leurs cibles à l'intérieur d'eux et donc ils sont juste supprimés. Pour réellement comprendre ce qu'ils pointent, puis dissocier la cible est un travail spécial et ne sera donc pas fait par un outil générique.

0

Voici 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 

donne

find a b 

a 
a/1 
a/2 

.

rm -rf b/ 

donne erreur:

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

Conclusion:

rm ne suit pas les liens symboliques

Questions connexes