Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 删除包含符号链接的文件夹_Linux_Bash_Macos_Shell - Fatal编程技术网

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

Linux 删除包含符号链接的文件夹,linux,bash,macos,shell,Linux,Bash,Macos,Shell,如果我rm-rf一个文件夹中有软链接,它会尝试跟踪这些链接并删除相应的文件夹,还是干脆取消链接 我有一份包含符号链接的主目录副本,我害怕rm-rf它,以防它跟随这些链接并炸毁相应的文件夹…否。rm-rf不会跟随符号链接-它只会删除它们 % mkdir a % touch a/foo % mkdir b

如果我
rm-rf
一个文件夹中有软链接,它会尝试跟踪这些链接并删除相应的文件夹,还是干脆取消链接


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

否。rm-rf不会跟随符号链接-它只会删除它们

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

一般来说,
rm
不会“删除”。它“解除链接”。这意味着
rm
会删除对文件的引用。当引用数达到零时,文件将不再可访问,并且随着时间的推移,它所在的磁盘区域将用于其他用途

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

以下是一个示例:

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: cannot remove `b/': Not a directory
结论:


rm不遵循符号链接

很抱歉,我要删除一篇旧文章,但这是错误的。实际上,rm-r只会删除符号链接本身,但是rm-RB/会删除a的所有内容(然后产生您报告的错误)!因此,它会留下a和b,但会删除a/1和a/2。
find a b

a
a/1
a/2
rm -rf b/
rm: cannot remove `b/': Not a directory