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

如何使用Bash脚本基于现有文件夹名创建序列编号文件夹

Bash批量生成带序列编号文件夹实现方案

需求1:基于指定目录下已有子文件夹名生成序列文件夹

实现逻辑

  • 读取目标目录下的首个一级子文件夹名作为生成的基础名称
  • 支持自定义生成数量、编号补零位数
  • 自动跳过已存在的文件夹,不会覆盖原有数据

实现脚本

#!/bin/bash
# 可自定义参数
TARGET_DIR="/home/Pictures"  # 要操作的目标父目录
GEN_COUNT=10                  # 要生成的序列文件夹总数
DIGITS=2                      # 编号位数,2对应01/02格式,3对应001/002格式

# 自动获取目标目录下首个一级子文件夹名作为基础名
BASE_NAME=$(find "$TARGET_DIR" -maxdepth 1 -type d ! -path "$TARGET_DIR" | head -n 1 | xargs basename 2>/dev/null)

# 异常判断
if [ -z "$BASE_NAME" ]; then
    echo "错误:目标目录下未找到任何子文件夹,无法获取基础名称"
    exit 1
fi

# 批量生成文件夹
for i in $(seq 1 $GEN_COUNT); do
    # 补零格式化编号
    SEQ=$(printf "%0${DIGITS}d" $i)
    FOLDER_NAME="${BASE_NAME}-${SEQ}"
    mkdir -p "${TARGET_DIR}/${FOLDER_NAME}"
done
echo "已完成生成,基础名称:$BASE_NAME,共生成${GEN_COUNT}个序列文件夹"

需求2:基于父文件夹自身名称生成序列文件夹

实现逻辑

  • 直接读取目标父目录的名称作为生成的基础名称
  • 支持自定义生成数量、编号补零位数
  • 自动跳过已存在的文件夹,不会覆盖原有数据

实现脚本

#!/bin/bash
# 可自定义参数
TARGET_DIR="/home/Songs"     # 要操作的目标父目录
GEN_COUNT=10                  # 要生成的序列文件夹总数
DIGITS=3                      # 编号位数,2对应01/02格式,3对应001/002格式

# 自动获取父目录名称作为基础名
BASE_NAME=$(basename "$TARGET_DIR")

# 批量生成文件夹
for i in $(seq 1 $GEN_COUNT); do
    # 补零格式化编号
    SEQ=$(printf "%0${DIGITS}d" $i)
    FOLDER_NAME="${BASE_NAME}-${SEQ}"
    mkdir -p "${TARGET_DIR}/${FOLDER_NAME}"
done
echo "已完成生成,基础名称:$BASE_NAME,共生成${GEN_COUNT}个序列文件夹"

使用说明

  • 脚本使用前只需修改可自定义参数区域的三个变量即可适配你的场景
  • 若需要批量处理多个目录,在外层套目录循环即可实现
  • 脚本中的mkdir -p指令不会覆盖已存在的文件夹内容,操作安全

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:15:03