首页 > 代码库 > Linux如何删除以特殊字符开头的文件
Linux如何删除以特殊字符开头的文件
作者:zhanhailiang 日期:2014-11-18
Linux在使用一些工具时经常会生成一些以特殊字符开头的文件,如以-开头,此时若使用普通rm,会提示“invalid option”:
[root@~]# rm -\,trail\:- rm: invalid option -- ‘,‘ Try `rm ./-,trail:-‘ to remove the file `-,trail:-‘. Try `rm --help‘ for more information.
这是因为Linux Shell默认认为-o|–option表示选项配置,而在当前命令rm中读不到相应的选项配置,所以报错。
通过rm –help可以看到:
To remove a file whose name starts with a `-‘, for example `-foo‘, use one of these commands: rm -- -foo rm ./-foo
总之,要删除掉特殊文件,可以使用绝对路径或相对路径或–来避免错误地将文件名解析为选项配置,以下提供多种操作方案:
第一种:rm – filename
[root@~]# rm -- -\,trail\:- rm: remove regular empty file `-,trail:-‘?
第二种:rm 相对路径
[root@~]# rm ./-\,trail\:- rm: remove regular empty file `./-,trail:-‘?
第三种:rm 绝对路径
[root@~]# rm ~/-\,trail\:- rm: remove regular empty file `/root/-,trail:-‘?
更深入一点,分析源码:
首先,下载源码包:
[root@~/software]# wget http://down1.chinaunix.net/distfiles/coreutils-8.4.tar.gz
查看src/rm.c源码:
可见,当参数以特殊字符-开头,且不在选项配置中时rm直接报错。
Linux如何删除以特殊字符开头的文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。