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

在Solaris系统中,尝试删除以连字号'-'开头的文件时遇到困难,因为Unix命令会将'-'解析为选项。通过在文件名前加上'.'或使用完整路径来避免这个问题,例如:`rm ./-exclude.tar`。此方法同样适用于其他特殊字符开头的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天无意中在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

 

 

[完]

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值