当我做
rm file.txt
或者
rm *.txt
系统会提示我输入每个文件,因为我没有指定 -f
选项 rm
。
但是当我这样做时:
find . -type f -name '*.txt' | xargs rm
文件在没有确认的情况下被删除。
这背后的逻辑是什么?是否可以在某些文档中找到原因?我无法解释为什么会这样。
原文由 Martin G 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答793 阅读✓ 已解决
2 回答3.2k 阅读
您将 rm 命令的别名设置为“rm -i”。因此,如果您直接调用命令,如
或者
别名将被扩展。如果您将使用 xargs 调用它,如
rm 作为一个简单的字符串参数传递给 xargs,稍后由 xargs 调用,无需 shell 的别名替换。您的别名可能在 ~/.bashrc 中定义,以防您想删除它。