删除包含符号链接的文件夹

时间:2010-06-04 20:23:29

标签: linux bash macos shell

如果我rm -rf一个包含软链接的文件夹,它是否会尝试关注这些链接并删除相应的文件夹,还是只是取消链接?

我的主目录中有一个带有符号链接的副本,我害怕rm -rf以防它跟随这些链接并炸毁相应的文件夹......

3 个答案:

答案 0 :(得分:16)

一般来说,rm不会“删除”。它“取消联系”。这意味着rm删除了对文件的引用。当引用数量达到零时,将无法再访问该文件,并且及时,其所在的磁盘区域将用于其他内容。

当您rm目录时,目录中的内容将被取消链接。符号链接是(有点像)文件,其中包含目标的名称,因此它们只是被删除。要真正弄清楚他们指向的是什么,然后取消链接目标是特殊的工作,因此不会通过通用工具完成。

答案 1 :(得分:9)

没有。 rm -rf不会遵循符号链接 - 它只会删除它们。

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

答案 2 :(得分:0)

以下是例子:

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不遵循符号链接