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

如何批量创建子文件夹并将匹配规则的文件移动至对应目录

问题原因分析
  • find命令的搜索路径使用了.,指代的是脚本执行时的当前工作目录,而非你遍历到的$dir目标子目录,无法匹配到a、b、c等目录下的目标文件。
  • mv命令的目标路径写为./x,同样是相对当前工作目录的路径,但你创建的x目录实际路径为$dir/x,当前工作目录不存在x文件夹,因此触发路径不存在的报错。
修复后可直接运行的脚本
pth=path/to/p
# 遍历p目录下的所有一级子目录(a/、b/、c/等)
for dir in "$pth"/*/; do
    # 创建对应子目录下的x文件夹,-p参数避免重复创建时报错
    mkdir -p -- "$dir/x"
    # 搜索当前遍历的子目录下所有名称匹配*match*的文件,移动到对应x目录下
    find "$dir" -type f -name '*match*' -exec mv -t "$dir/x" -- {} +
done
补充说明
  • 所有变量路径都增加了双引号包裹,避免路径中存在空格、特殊字符时出现解析异常。
  • find命令增加了-type f参数限定仅匹配普通文件,如果你需要同时移动名称匹配规则的目录,可以删除该参数。
  • 所有命令尾部增加了--参数,避免文件名以-开头时被系统误识别为命令参数导致执行失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 16:06:03