Answers:
对于无法通过常规方式删除的文件,最终的解决方案几乎是:
ls -il
第一列将显示文件的索引节点号。
find . -inum [inode-number] -exec rm -i {} \;
验证后,这将删除具有指定inode编号的文件。
-delete
而不是-exec
,然后意识到您正在使用rm -i
这是一个好主意,因此我回退了。抱歉。
您应该能够将该文件~/~
引用为(不带引号),因为波浪号扩展名仅~
在单词的开头应用波浪号()。
rm ./~
,您
./~
从字面上意味着“ ~
在当前目录中命名的文件或文件夹”。没有像转义字符或inode引用这样的技巧。
./~
则需要更改。五年后,我的记忆有些模糊,但是我认为这就是为什么我建议~/~
而不是更普通的原因./~
:这个问题专门针对“ ~
在[OP's] 主目录中命名的文件”。不是“在当前目录中”。
引号(rm '~'
)或转义(rm \~
)。
它始终是其中的一个(也用于$
),或添加--
以防止将文件名解释为参数:rm -- -i
删除名称为-i
; 的文件。rm -- *
当您要删除当前目录中的所有文件时,它也很有用:不会rm -f *
因为这样的文件而被偶然删除。
--
仅停止将以下参数解释为参数-不会阻止shell执行其扩展(例如*
),这就是这里发生的情况。(我知道您建议将其作为其他情况的替代方法,但警告会很好。)