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

如何编写Bash脚本遍历数字文件夹查找并重命名移动file.sum?

实现需求的Bash脚本方案

没问题,这就给你写一个满足需求的Bash脚本,每一步都加了注释,也会在后面拆解关键逻辑:

#!/bin/bash

# 先确保目标目录~/summary存在,不存在就创建
TARGET_DIR="$HOME/summary"
mkdir -p "$TARGET_DIR"

# 遍历001到365的三位数字文件夹
for i in $(seq -w 1 365); do
    # 定义当前文件夹路径
    FOLDER="$i"
    # 检查该文件夹是否存在,并且里面有file.sum文件
    if [ -d "$FOLDER" ] && [ -f "$FOLDER/file.sum" ]; then
        # 定义新的文件名:文件夹名.file.sum
        NEW_FILENAME="${FOLDER}.file.sum"
        # 重命名并移动文件到目标目录
        mv "$FOLDER/file.sum" "${TARGET_DIR}/${NEW_FILENAME}"
        echo "处理完成:$FOLDER/file.sum -> ${TARGET_DIR}/${NEW_FILENAME}"
    fi
done

echo "所有符合条件的文件处理完毕!"

关键逻辑拆解:

  • mkdir -p "$TARGET_DIR":-p参数确保如果~/summary目录不存在就创建它,避免后续移动文件时因为目录不存在报错。
  • seq -w 1 365:seq用来生成1到365的序列,-w参数会自动补前导零,生成001、002...365这样的三位数字格式,正好匹配文件夹命名。
  • [ -d "$FOLDER" ] && [ -f "$FOLDER/file.sum" ]:先检查当前三位数字命名的文件夹是否存在,再检查里面是否有file.sum文件,只有两个条件都满足才会执行后续操作,避免不存在的文件夹或文件导致错误。
  • mv "$FOLDER/file.sum" "${TARGET_DIR}/${NEW_FILENAME}":一步完成重命名和移动操作,比先重命名再移动更高效,也避免中间状态的问题。

使用的时候,把脚本保存为process_sum_files.sh,然后给它加执行权限:chmod +x process_sum_files.sh,在存放001-365文件夹的目录下运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:58:14