如果我正在扫描一棵大树,并且希望在扫描整个过程之前将结果传递给另一个命令,那么;选项会这样做吗?从我的阅读来看,似乎是这样,但我想确定没有后台缓存。如果有后台缓存,我想知道这样我就可以使用for循环。
在几个文件上运行find时,磁盘上没有任何延迟或压力。对于一个经常运行的脚本,在一个长长的文件列表上,在find将完整列表传递给下一个命令之前,可能需要几分钟的时间。我希望find一次只在一个文件上运行,并且在上一个-exec完成之前也不要搜索目标。
发布于 2017-10-27 16:50:57
你好像是在问
find -exec some_command '{}' \;将对每个文件依次执行一次some_command,在执行some_command时不执行后台的任何其他操作。
的确,这是事实。
然而,你似乎也认为这会减少硬盘上的磨损。情况可能并非如此--启动和停止I/O需要更多的机械动作,而不是一次读取大量数据,因此在传统的旋转硬盘驱动器上可能会导致(非常轻微)更多的磨损。
发布于 2017-10-25 17:21:17
您可以尝试一些不同的方法,并使用命名管道:如何将管道作为持久进程启动
基本上:
https://unix.stackexchange.com/questions/400389
复制相似问题