You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git Bash中find命令作为流处理,实时执行for循环?

解决方案

你原来用for x in $(find ...)的写法,会先让find跑完所有搜索、输出全部结果后,才开始循环处理,这就是为什么要等find执行完才一次性打开文件夹。要实现找到一个就立刻打开一个的效果,换成下面两种写法都可以:

写法一:用管道+while逐行处理

find . -name '*foo*' -type d 2> /dev/null | while read -r x; do
  start "$x"
done
  • 管道|会把find的输出实时逐行传给while循环,每找到一个目录就立刻执行start打开它,不用等整个搜索结束。
  • -r参数是为了避免read解析路径里的反斜杠等特殊字符,保证路径读取准确。

写法二:用find自带的-exec参数

find . -name '*foo*' -type d 2> /dev/null -exec start {} \;
  • {}代表find找到的当前文件夹路径,\;是-exec的结束标记,find每匹配到一个目录就会立刻调用start命令打开它,同样能达到即时处理的效果。

内容的提问来源于stack exchange,提问作者dx_over_dt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 04:37:03