首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到-exec;经济

找到-exec;经济
EN

Unix & Linux用户
提问于 2017-10-25 15:15:16
回答 2查看 116关注 0票数 -1

如果我正在扫描一棵大树,并且希望在扫描整个过程之前将结果传递给另一个命令,那么;选项会这样做吗?从我的阅读来看,似乎是这样,但我想确定没有后台缓存。如果有后台缓存,我想知道这样我就可以使用for循环。

在几个文件上运行find时,磁盘上没有任何延迟或压力。对于一个经常运行的脚本,在一个长长的文件列表上,在find将完整列表传递给下一个命令之前,可能需要几分钟的时间。我希望find一次只在一个文件上运行,并且在上一个-exec完成之前也不要搜索目标。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-10-27 16:50:57

你好像是在问

代码语言:javascript
复制
find -exec some_command '{}' \;

将对每个文件依次执行一次some_command,在执行some_command时不执行后台的任何其他操作。

的确,这是事实。

然而,你似乎也认为这会减少硬盘上的磨损。情况可能并非如此--启动和停止I/O需要更多的机械动作,而不是一次读取大量数据,因此在传统的旋转硬盘驱动器上可能会导致(非常轻微)更多的磨损。

票数 1
EN

Unix & Linux用户

发布于 2017-10-25 17:21:17

您可以尝试一些不同的方法,并使用命名管道:如何将管道作为持久进程启动

基本上:

  1. 创建一个命名管道
  2. 启动您想要在find的-exec参数中使用的进程,并从管道中读取它。
  3. 启动查找过程并让它将结果写入管道
  4. 从您的过程中,您可以控制和停止查找,如果您达到了一个结果,这意味着您不需要列出其余的文件。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/400389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档