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