今天看到一篇关于rm -rf /*
的文章,文中作者是这么写的rm -fr /*
,咋一看是不是感觉没什么问题?但是看到评论区的时候有人认为这是错误的写法,但这究竟是不是错的呢?我们来验证一下。
环境
- ubuntu 18.04 server
- kali 2019.4
我这边暂时只有这两个环境了,最近比较忙,没时间配置新的环境,还请见谅。
验证结果
# mkdir test1
# mkdir test2
# ls
test1 test2
# rm -fr test1
# ls
test2
经过验证我发现可以正常执行,这是为什么呢?
原因(个人理解)
在linux中的命令有一些开关选项,这些开关选项是没有参数的,如果每一个开关选项都需要单独写会让最终写出的代码变得非常的长,比如:rm -r -f /*
,这样写是不是感觉不够简洁?但是这样也是可以正确执行的,所以linux中的大部分命令都可以将开关选项写在一起rm -rf /*
。
那么需不需要注意顺序呢?当然是不用的,对于命令行参数通常是没有顺序限制的,所以无论是rm -rf /*
还是 rm -fr /
都是可以的
验证结果,rm -fr /*
是正确的,所以在平时遇到问题不要急着回答,一定要先验证之后再发表自己得看法。
对于linux我的了解其实不多,如有错误的地方还请指正。