如何用单行终端命令打印指定partials目录下的目标文件名?
解决方案
你可以直接用 find 命令来实现这个需求,在当前的 super_crawler 目录下执行以下单行命令即可:
find config/settings1/partials config/settings2/partials -type f \( -name "my_name*" -o -name "is*" -o -name "choi*" \) -printf "%f\n"
命令细节解释:
find:Unix/Linux生态下的文件搜索工具,专门用来定位符合条件的文件或目录config/settings1/partials config/settings2/partials:明确指定要搜索的两个目标目录,避免遍历不必要的路径-type f:限定只搜索普通文件,防止意外匹配到目录本身\( -name "my_name*" -o -name "is*" -o -name "choi*" \):匹配文件名以my_name、is、choi开头的文件,其中-o表示“或”的逻辑,括号需要加转义符(\(和\)),避免被Shell提前解析成其他含义-printf "%f\n":只输出纯文件名(不包含完整路径),每个文件名单独占一行,让输出更整洁
如果你想更简洁地实现(不需要严格过滤文件类型),也可以用通配符结合工具提取文件名:
ls config/settings*/partials/my_name* config/settings*/partials/is* config/settings*/partials/choi* | xargs basename
这个命令先用 ls 列出所有符合通配符的文件路径,再通过 xargs basename 批量提取每个路径的文件名部分。
内容的提问来源于stack exchange,提问作者user3595632
相关产品推荐
相关产品推荐

