有次同事使用tar命令排除不打包的文件时,(使用-X选项),由于命令使用失败,却建立了一个文件名为-X的文件。用rm命令怎么也不能删除,经过多次尝试,最后终于找到了方法:

方法一: 进入文件所在的目录,先用ls -il命令查看一下要删除文件的inode号;然后执行find . -inum  inode号|xargs rm

注意:此方法可能有一定风险。可能会删除相同Inode的文件,所以删之前先用find . -inum  inode号查看下是不是只有要删的文件。

方法二: 在删除的文件前加路径,比如 rm  ./-X

此方法简单,安全,方便。建议用此方法。

出现乱码文件时也可以借鉴方法一,删除。

有时候也会遇到表面上看上去正规的文件名。但是用rm -f filename就是无法删除。这种文件其实是创建的时候不知道按了什么键。导致文件名背后其实还有隐含的符号。如果使用类似如下命令:ls -l >test.txt  然后vi test.txt ;进入vi 后:set list会看到文件后隐含的符号。在vi里把名字和隐含的符号都复制下来。再rm 复制内容  就可以删除了。