如何删除以-开头的文件
2016年5月9日
今天删除文件的时候遇到一个问题。当我准备清理一个APK列表的时候,发现rm命令不好用了。
1 | zach$ sudo rm -f * |
我开始不知道发生了什么。我一直以来使用的rm命令用错了?
后来才发现是下面这个原因。
1 | zach$ ls | grep "^-" |
原来是有两个文件是以-打头,导致rm失败。
当使用命令rm的时候,接上了这样一个倒霉的文件名,那么rm命令会认为-x是一个参数。然而rm -x是无意义的,所以会报错。
1 | zach$ rm -xf7j9NNrVbMHTUnqfmw1UiG.apk |
解决方法很简单。
第一种方法:
1 | $ rm ./-xf7j9NNrVbMHTUnqfmw1UiG.apk |
第二种方法:
1 | $ rm -- -xf7j9NNrVbMHTUnqfmw1UiG.apk |
最终我删除这些apk的命令是:
1 | zach$ rm -r -f -- *.apk |
这个虽然没有什么技术含量,但是稍微做一点小记录,防止下次再犯。
PS
最后的考一个小问题:
刚才讲了如何删除一个以“-”开头的文件,那么如何建立一个以“-”开头的文件呢?
1 | # This command does not work. |
以上这条命令是不会奏效的。
其实答案很简单的,自己思考一下吧。