理想情况下,我想要这样的命令
rm --only-if-symlink link-to-file
因为我烧掉自己太多次了,所以不小心删除了文件而不是指向文件的符号链接。当涉及到sudo时,这尤其糟糕。现在,我当然要做一个a ls -al
,以确保它确实是一个符号链接,但是这样很容易受到操作员错误(类似文件,错字等)和竞争条件(如果有人出于某种原因要我删除文件)的攻击。有什么方法可以检查文件是否为符号链接,并且仅在一个命令中才将其删除?
1
我认为比赛条件不应该成为问题。任何能够删除符号链接并将其替换为文件的人都需要对该目录具有写权限,这意味着他们也可以自己删除该文件。
—
Nate Eldredge