这是一个可以称为蛋疼的问题,闲着没事把这个问题考虑了一下。

在Linux系统中,-i通常是命令(或应用程序)的选项,就是说下面的命令是不可以的:

touch -i
rm -i

那么把i前面的短线转义掉或使用引号可以吗?试验之后发现不行。

但我们必须想办法让i前面的短线失去意义才行。这里有两个办法可以一试:

(1)创建及删除文件时加上路径名(绝对路径或相对路径),使得i前面的短线不出现在第一位,如下,

touch ./-i
rm ./-i

touch ~/-i
rm ~/-i

(2)大部分shell程序针对文件名中带有短线(或称连字符)的情况提供了一个专门的解决方案:两个连字符–

即:

touch -- -i
rm -- -i

如有其他办法,请留言吧。