2010-06-04 14 views
14

Jeśli I rm -rf jest folderem z miękkimi linkami, czy spróbuje użyć tych linków i usunąć odpowiedni folder, czy po prostu je odłączy?Usuwanie folderu zawierającego linki symboliczne

mam kopię mojego katalogu domowego z symbolicznych linków w nim, a boję się rm -rf nim w przypadku wynika te linki i wysadza odpowiednie foldery ...

Odpowiedz

7

nr rm -rf nie będą podążać za dowiązaniami symbolicznymi - po prostu je usunie.

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

Ogólnie mówiąc, rm nie "usuwa". "Rozłącza". Oznacza to, że odwołania do pliku są usuwane przez rm. Gdy liczba odniesień osiągnie zero, plik nie będzie już dostępny, a po pewnym czasie obszar dysku, na którym się znajduje, zostanie wykorzystany na coś innego.

Po znalezieniu katalogu, pliki wewnątrz katalogu są rozłączone. Dowiązania symboliczne są plikami (podobnymi do nich) z nazwami ich obiektów docelowych, a więc są po prostu usuwane. Aby właściwie zorientować się, na co wskazują, a następnie odłączyć cel, jest to praca specjalna, a więc nie zostanie wykonane za pomocą ogólnego narzędzia.

0

Oto 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 

daje

find a b 

a 
a/1 
a/2 

.

rm -rf b/ 

daje błąd:

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

Wniosek:

rm nie wynika dowiązania