从 find 命令 grep on exec 的最佳方法是什么?
Which is best way to grep on exec from find command?
我很好奇这些语句中的哪一个会占用最多的资源。
我有时希望标准是 1000 个文件,并希望确保我实施“最安全”的执行。文件本身会相对较小,但文件的数量可能会非常大。
两种选择:
sudo find /home/users -name '*.sh' -type f -exec grep -n 'rm.*tmp.*7z$' {} \+
sudo find /home/users -name '*.sh' -type f -exec grep -Hn 'rm.*tmp.*7z$' {} \;
如您所见,唯一的区别是我应该使用 + 还是 ;
第一个比第二个少 运行 grep
次,后者将为每个文件启动一个实例。 grep
的启动时间非常快,因此可能不会有太大的明显改进,但第一个会更有效率,第二个会占用更多资源。
(您也需要将 -H
添加到第一个 grep
的选项中,以防万一它在某个时候使用单个文件名参数获得 运行。)
我很好奇这些语句中的哪一个会占用最多的资源。
我有时希望标准是 1000 个文件,并希望确保我实施“最安全”的执行。文件本身会相对较小,但文件的数量可能会非常大。
两种选择:
sudo find /home/users -name '*.sh' -type f -exec grep -n 'rm.*tmp.*7z$' {} \+
sudo find /home/users -name '*.sh' -type f -exec grep -Hn 'rm.*tmp.*7z$' {} \;
如您所见,唯一的区别是我应该使用 + 还是 ;
第一个比第二个少 运行 grep
次,后者将为每个文件启动一个实例。 grep
的启动时间非常快,因此可能不会有太大的明显改进,但第一个会更有效率,第二个会占用更多资源。
(您也需要将 -H
添加到第一个 grep
的选项中,以防万一它在某个时候使用单个文件名参数获得 运行。)