2010-06-04 73 views
14

如果我在rm -rf中有一個軟鏈接的文件夾,它會嘗試關注這些鏈接並刪除相應的文件夾,還是隻是將它們解除鏈接?刪除包含符號鏈接的文件夾

我有我的主目錄,在它的符號鏈接的副本,我嚇得rm -rf它的情況下,它遵循這些鏈接,並炸燬了相應的文件夾...

回答

7

號室射頻不會遵循符號鏈接 - 它只會刪除它們。

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

一般來說,rm不會「刪除」。它「取消關聯」。這意味着對文件的引用將被rm刪除。當引用數量達到零時,文件將不再可訪問,並且及時,它所在的磁盤區域將用於其他內容。

當你rm一個目錄,目錄內的東西是取消鏈接。符號鏈接是(有點像)文件,其內部的目標名稱被刪除。要真正找出他們指向的內容,然後取消鏈接目標是特殊工作,所以不會由通用工具完成。

0

這裏是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 

find a b 

a 
a/1 
a/2 

rm -rf b/ 

給出了錯誤:

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

結論:

RM不跟隨符號連接