如何删除符号链接的目标而不删除链接本身?

如何删除符号链接的目标而不删除链接本身?

我有一个~/Desktop/test.txt指向的符号链接~/rendu/test.txt

我只知道的路径~/Desktop/test.txt,我想要一种快速删除的方法~/rendu/test.txt,而不删除符号链接。

对于想知道原因的人:crypted.xxx我的桌面上有一个名为的文件,它已加密并包含我的密码。

当我想更新我的加密文件时,我会解密它并将其创建crypted.txt在一个特殊的目录中。因此,出于实际原因,我在桌面上创建了指向该文件的链接。但在查看我的 后crypted.txt,我想快速删除它crypted.txt(而不是桌面上的链接)。

答案1

使用find查找符号链接,然后使用readlink获取目标的完整路径rm

find ~/Desktop/ -type l -name 'test.txt' -exec bash -c 'rm "$(readlink -f "$1")"' _ {} \;

或者您已经知道链接名称:

rm "$(readlink -f ~/Desktop/test.txt)"

答案2

只需使用:

printf "" > "$(readlink '/path/to/link')"

清除文件,或

rm "$(readlink '/path/to/link')"

消除文件。

相关内容