为什么这个 bash 命令会占用设备上的所有空间?

che*_*rtz 6 unix search bash

我对通过 bash 搜索有点新,所以请随时给我建议使用的方法而不是这个,我永远不会再使用它。

我正在目录中递归地搜索字符串的出现,其中包含约 50 个不那么大的 php 文件;有的在当前目录,有的在当前目录下的目录,最多向下三级目录。

我使用的方法是

find . | xargs grep "module" > module.txt
Run Code Online (Sandbox Code Playgroud)

当在简单(一级)目录中时,这工作正常,但在这种情况下,文件变成 4 GB 大,直到填满分区上的所有空间。它甚至还没有完成。

为什么那个文件变得这么大?

Ign*_*ams 21

module.txt在管道开始之前创建,因此它包含在搜索中。grep在其中找到“module”的实例,因此向其中添加一行包含单词“module”。然后 grep 找到并添加。然后 grep 找到并添加。然后 grep 找到并添加。哪一个...

  • 将文件存储在搜索参数之外。 (7认同)
  • @OP:解决方案是确保您的结果文件名不包含搜索关键字。 (2认同)