关于 rm 的疑问

2017-12-23 13:48:10 +08:00
 yxwzaxns
Mac:NO NAME aong$ sudo rm -rf 1-04-lqc*
Mac:NO NAME aong$ rm -rf *
^C
Mac:NO NAME aong$ ls

今天删除一个 U 盘内容时手快直接打了个*,幸好 0.5 秒后反应过来掐断了,不知道这 0.5 秒里有没有文件被删除,很好奇上面这个 rm 执行后它从哪个文件开始删除

ps:电脑目前看起来一切正常

1294 次点击
所在节点    问与答
2 条回复
lrz0lrz
2017-12-23 18:59:58 +08:00
rm 自身并不决定执行顺序,在没有-r 的情况下,shell 会把 rm *转换为 rm aa ab ba,rm 会按照这个顺序来删除。
好像不同 shell 对*的转换不一样,我只知道 bash 会转换成字母顺序。
至于带有-r 的情况,就不太了解了。
lrz0lrz
2017-12-23 19:03:48 +08:00
带有 -r 的时候,rm 会按照字母顺序逐个删除文件和文件夹,并且在删除某个文件夹之前一定会先删除其内部的所有文件,但是对文件夹内部的文件会是什么处理顺序就不知道了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/417047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX