为什么`rm -i kk kk *'抱怨缺少kk?

时间:2015-11-01 13:42:49

标签: shell wildcard

我想了解rm命令是如何工作的,

我尝试了什么:

touch kk kk.999 (so it creates 2 blank files the kk and the kk.999)
rm -i kk kk* (then i tried this command so it deletes kk and then try to delete all the files starting with kk but before it deletes kk.999 an error occurs)

我的想法:

删除''然后我认为linux尝试删除kk *(' kk'和' kk.999')但是剩下的唯一kk文件是kk.999(因为' kk' ;已被删除)所以为什么它说' kk'没找到?有linux的人请尝试上面的命令并解释我发生了什么......我无法理解。 不管怎样,谢谢!

1 个答案:

答案 0 :(得分:1)

shell在执行命令之前展开命令行通配符。 rm -i kk kk*相当于写作rm -i kk kk kk.999。第二个kk导致rm对文件不存在大喊大叫,因为它在命令行上看到第一个实例时已经将其删除了。您只需编写rm -i kk*即可确保文件名不会重复。

相关问题