-4

我只是想分享一下我的愚蠢以及我是如何用几行代码耗尽所有磁盘空间的,大约 90 GB。

我想做的只是列出包含一组字符串的目录(包括子目录)中的所有文件,并将信息保存在文件中。我认为 find 会有所帮助,我也对其进行了测试....

find . -exec grep -i "TEXT_TO_FIND" '{}' \; -print >TEXT_TO_FIND.txt

但是,我需要获取字符串以动态搜索并动态构建命令字符串,在找出构建命令字符串的正确方法之后,我运行了我的程序。我认为 exec() 会等待来自操作系统的任务完成的信号。我认为没有。即使这样做了,我的程序也永远不会完成,因为它还会搜索我通过重定向创建的文件,因此 grep 会无限期地运行,直到所有磁盘空间都被利用完。

我只是想确认Runtime.getRuntime().exec(cmd);不等待来自操作系统的任何信号。

4

1 回答 1

1

Runtime.getRuntime().exec(cmd)不等待来自操作系统的任何信号。如果你想暂停你的程序直到从属程序完成,试试这个:

Process p = Runtime.getRuntime().exec(cmd);
p.waitfor();
于 2012-07-03T13:33:02.853 回答