kaisawind's blog
  • 关于
  • 所有帖子

批量移动与父文件夹相同的子文件夹 - Fri, Apr 25, 2025

批量移动与父文件夹相同的子文件夹

#!/bin/bash

# 遍历所有父文件夹
find "$1" -type d -print0 | while IFS= read -r -d '' parent_dir; do
    # 获取子文件夹列表(仅直接子文件夹)
    subdirs=("$parent_dir"/*/)

    # 检查子文件夹数量是否为1,且名称与父文件夹相同
    if [ ${#subdirs[@]} -eq 1 ]; then
        subdir="${subdirs[0]}"
        parent_name=$(basename "$parent_dir")
        subdir_name=$(basename "$subdir")

        if [ "$parent_name" = "$subdir_name" ]; then
            echo "处理文件夹: $parent_dir"
            # 移动子文件夹内容到父文件夹(包括隐藏文件)
            mv "$subdir"/* "$subdir"/.* "$parent_dir"/ 2>/dev/null
            # 删除空子文件夹
            rmdir "$subdir"
        fi
    fi
done
./merge_folders.sh /path/to/your/directory/*


辽ICP备2021007608号 | © 2025 | kaisawind

Facebook Twitter GitHub

▄