Linux系统下的特殊文件,一般指含有特殊字符的文件,比如特殊字符开头、文件名中间有特殊字符、末尾有特殊字符、文件名为中文乱码或者包含中文乱码等。其它特殊文件还有软链接文件、配置了特殊权限的文件等等。
之前简单写过一篇:Linux系统中文件名有特殊字符的文件如何删除
这里汇总一下常见的特殊文件类型及删除方法,供参考。
一、名称里含有特殊字符的文件如何删除
大概有下面6种方法:
(1)带上路径(相对路径或者绝对路径)<部分场景不适用>
(2)使用 -- <只适用特殊字符-开头的文件>
(3)使用英文双引号"" <部分场景不适用>
(4)使用通配符 <要注意防止误删,部分场景不适用>
(5)使用转义符\ <部分场景不适用>
(6)使用inode编号 <相对复杂,建议最后使用>
实例参考:




特殊字符-开头的文件,可以通过带上路径的方式删除,不带路径删除会报错。
用通配符模糊匹配并加双引号的方式也可以删除,但要注意防止误删;
当然还可以用rm -- -p的方式删除。参考rm命令帮助里的示例:

特殊字符! @ <等开头的文件则通常需要使用通配符或者加转义符的方式删除,inode编号的方式也可以,但步骤相对复杂:
需要先通过ls -i或者ll -i获取inode编号(或者叫i节点号)
再执行下面的删除操作
find ./ -inum 16782858 -exec rm {} \;#或者使用-delete参数










注意:删除前最好先确认一下,避免误删其它文件
二、软链接文件的删除
软链接文件一般可以直接删除,但要注意,如果链接的是链接库文件(如libssl.so.3 libcrypto.so.3之类的),删除时要谨慎,因为可能影响系统或调用该文件的程序。

三、其它特殊文件的删除
(1)如果文件被占用,需要先关闭占用该文件的程序才能删除;
(2)有特殊权限的文件,需要先去掉特殊权限才能删除,实例如下:
