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

Bash如何查找符合名称规则的文件所在目录

解决方案

你可以通过组合find、路径提取、去重、文本拼接的命令直接得到目标格式的输出,根据你使用的系统环境选对应命令即可:

  • 适用于Linux(GNU工具链)的最简命令:
find . -name "example*" -type f -printf '%h\n' | sort -u | sed 's|^\./||' | paste -sd ', ' -
  • 适用于macOS/BSD系统的兼容命令(BSD版find无GNU专属的-printf参数):
find . -name "example*" -type f -exec dirname {} \; | sort -u | sed 's|^\./||' | paste -sd ', ' -

命令各段作用说明

  • -type f:限定只匹配普通文件,避免同名目录被误算入结果
  • 路径提取段:GNU环境用-printf '%h\n'直接输出文件所在目录;BSD环境用-exec dirname {} \;调用dirname命令提取目录,二者效果一致
  • sort -u:对目录路径排序并去重,同一个目录下存在多个example开头文件时只会保留一次记录
  • sed 's|^\./||':删除路径开头默认带的./前缀,输出纯子文件夹路径格式
  • paste -sd ', ' -:把逐行的目录结果用「逗号+空格」拼接为单行,输出格式和你要求的subfolder1, subfolder4, subfolder8完全一致

如果存在嵌套子文件夹存目标文件的情况(比如subfolder1/nested/下也有example开头文件),命令也会正确将嵌套路径列在结果中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.08 16:15:16