![如何删除符号链接的目标而不删除链接本身?](https://linux22.com/image/1134969/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E7%9A%84%E7%9B%AE%E6%A0%87%E8%80%8C%E4%B8%8D%E5%88%A0%E9%99%A4%E9%93%BE%E6%8E%A5%E6%9C%AC%E8%BA%AB%EF%BC%9F.png)
我有一个~/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')"
到消除文件。