如何删除符号链接链接到的目录以及符号链接?

如何删除符号链接链接到的目录以及符号链接?

Saya是一个符号链接b。我正在寻找一个简单的命令来同时删除这两个命令a,并且b不需要我了解b.

答案1

显然我不允许发表评论,所以这里作为答案:既然a是链接,我们需要在取消引用的目录上使用递归选项...

rm -rf "$(readlink -f "a")"; rm -f "a"

答案2

我目前的解决方案是

rm -rf "$(readlink -f "a")"; rm -f "a"

但也许有更容易的事情?

答案3

当您添加尾部斜杠时,某些系统将取消引用符号链接(至少在符号链接指向目录时):

mkdir -p b/c && touch b/c/foo && ln -s b/c a

rm -rf a/ && rm -f a
# removed "b/c" and "a"

POSIX 标准发生了一些变化(请参阅路径名解析IEEE 标准 1003.1,2004 年版IEEE 标准 1003.1-2008),但带有尾部斜杠的路径名和作为符号链接的最终路径名组件的行为似乎(大部分)相同:符号链接已解析。

但并非所有系统都实现此行为(请参阅 Gilles 的评论)。

相关内容