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

如何批量移动含cover的文件至不同位置的同名父文件夹?

批量移动含cover/Cover的文件到对应目录

核心思路

用find命令遍历原目录下所有含cover/Cover的文件,提取每个文件的父文件夹名称,在目标根目录下创建同名文件夹(不存在则创建),最后将文件移动到对应目录中。

实现命令

# 替换为你的实际路径
SOURCE_DIR="/mnt/folder1"
TARGET_ROOT="/mnt/test/folder2"

# 遍历所有含cover/Cover的文件,处理移动逻辑
find "$SOURCE_DIR" -type f -iname "*cover*" | while read -r cover_file; do
    # 获取文件的父文件夹名称
    parent_folder=$(basename "$(dirname "$cover_file")")
    # 拼接目标目录路径
    target_dir="$TARGET_ROOT/$parent_folder"
    # 创建目标目录(-p确保多级目录都能创建,已存在则不报错)
    mkdir -p "$target_dir"
    # 移动文件到目标目录
    mv "$cover_file" "$target_dir/"
done

关键参数说明

  • -iname "*cover*":忽略大小写匹配文件名,同时覆盖cover和Cover的情况,比分开写两个-name条件更简洁。
  • dirname "$cover_file":获取当前文件的父文件夹完整路径,例如/mnt/folder1/subfolder 1。
  • basename:从父文件夹路径中提取纯名称,例如subfolder 1。
  • while read -r:相比for循环更安全,能正确处理文件名含空格、特殊字符的场景。

测试建议

执行前可以将mv "$cover_file" "$target_dir/"替换为echo mv "$cover_file" "$target_dir/",这样只会打印移动命令而不实际执行,确认路径无误后再去掉echo执行真实移动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:13:28