【问题标题】:Difference between rm -rf *o and rm -rf *.orm -rf *o 和 rm -rf *.o 的区别
【发布时间】:2021-04-09 14:08:48
【问题描述】:

我想知道这两个命令 (1) rm -rf *o 和 (2) rm -rf *.o 是否给出相同的结果:都删除目标文件。

另外为什么上面的命令也会删除可执行文件?

【问题讨论】:

  • 第一个命令将删除所有以 o 结尾的文件,第二个命令将删除所有以点结尾的文件,然后是 o。

标签: shell rm


【解决方案1】:

* 是一个 shell 模式,匹配除隐藏文件之外的任何内容。

rm -rf *o 也会因此删除名为hello 或test.iso 的文件,而rm -rf *.o 只会删除以.o 结尾的文件。

顺便说一下,-r 表示递归,即也会删除目录。它不应该出现在这里。你想要rm -f *.o。

【讨论】:

  • 你的回复很有帮助
  • 你可能也不想要-f。
  • * is a shell pattern matching anything. - 除隐藏文件外的任何内容
  • @glennjackman -f 在干净的脚本中很典型,因为它使它具有幂等性。 rm *.o 如果什么都没有编译或者 clean 刚刚被执行,那么会大声失败。
【解决方案2】:

我想知道这两个命令 (1) rm -rf *o 和 (2) rm -rf *.o 是否给出相同的结果:都删除目标文件。

不,它们给出的结果不同:

  1. 删除所有以o 结尾的文件以及所有以o 结尾的目录。
  2. 删除所有以.o 结尾的文件以及所有以.o 结尾的目录。

另外为什么上面的命令也会删除可执行文件?

可能是因为它们以 o (1) 或 .o (2) 结尾。

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 2014-06-26
    • 2012-07-02
    • 1970-01-01
    • 2013-01-10
    • 2012-05-13
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多