如何删除连字号‘-’开头的文件或文件夹

来源:互联网 发布:淘宝账号身份证解绑 编辑:程序博客网 时间:2024/05/23 10:34

今天无意中在solaris中创建了一个文件 -exclude.tar, 试着删除时发现麻烦来了,因为这个连字号‘-’正好用于指定unix 命令的option.

 

开始想当然:

>rm -exclude.tar

rm: illegal option -- e
rm: illegal option -- x
rm: illegal option -- c
rm: illegal option -- l
rm: illegal option -- u
rm: illegal option -- d
rm: illegal option -- e
rm: illegal option -- .
rm: illegal option -- t
rm: illegal option -- a
usage: rm [-fiRr] file ...

转义是否可以呢?

>rm /-exclude.tar

rm: illegal option -- e
rm: illegal option -- x
rm: illegal option -- c
rm: illegal option -- l
rm: illegal option -- u
rm: illegal option -- d
rm: illegal option -- e
rm: illegal option -- .
rm: illegal option -- t
rm: illegal option -- a
usage: rm [-fiRr] file ...

 

接着想是否需要用引号引起来:

>rm "-exclude.tar"
rm: illegal option -- e
rm: illegal option -- x
rm: illegal option -- c
rm: illegal option -- l
rm: illegal option -- u
rm: illegal option -- d
rm: illegal option -- e
rm: illegal option -- .
rm: illegal option -- t
rm: illegal option -- a
usage: rm [-fiRr] file ...
相同的错误

 

改用单引号:

还是报相同的错误

 

后来想先把它重命名,再删除之:

>mv -exclude.tar exclude.tar

mv: illegal option -- e
mv: illegal option -- x
mv: illegal option -- c
mv: illegal option -- l
mv: illegal option -- u
mv: illegal option -- d
mv: illegal option -- e
mv: illegal option -- .
mv: illegal option -- t
mv: illegal option -- a
mv: illegal option -- r
mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
       mv [-f] [-i] f1 ... fn d1
       mv [-f] [-i] d1 d2
类似的错误,不能重命名! 都是这个连字号‘-’惹的祸!

同样用引号引起来也不行...这个方法也行不通!

 

怎么办呢?

最后才想到加上目录前缀

>rm ./-exclude.tar

OK. 成功了!真笨。

 

用类似的方法也可以删除其他特殊字符开头的文件或文件夹.

e.g.

>touch ./~sample.txt

>rm ~sample.txt

Unknown user: sample.txt.
>rm ./~sample.txt

另外某些字符则系统会自动加上转义字符'/'. e.g.

>touch ^caret.txt

>rm /^caret.txt

 

 

[完]

 

 

原创粉丝点击