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执行其扩展(例如*),这就是这里发生的情况。(我知道您建议将其作为其他情况的替代方法,但警告会很好。)