您的位置:首页 > 其它

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

2011-01-26 19:04 351 查看
今天无意中在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

[完]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: