如何仅重命名文件夹?批量给00开头文件夹加540-前缀
解决方案
Linux/macOS 命令行
直接用find命令精准筛选文件夹,彻底避免误改文件:
# 仅处理当前目录下的直接子文件夹(不递归) find . -maxdepth 1 -type d -name "00*" -exec mv {} "540-{}" \; # 如果需要递归处理所有层级的00开头文件夹,去掉-maxdepth 1 find . -type d -name "00*" -exec mv {} "540-{}" \;
-type d:只匹配目录,完全排除各类文件-maxdepth 1:限制只处理当前目录的直接子项,防止修改深层子文件夹(按需选择)-exec mv {} "540-{}":给匹配到的文件夹添加指定前缀
如果系统支持rename命令(部分Linux发行版),也可以用更简洁的写法:
# 当前目录下的直接子文件夹 rename 's/^00/540-00/' */00* # 递归所有层级 find . -type d -name "00*" -exec rename 's/^00/540-00/' {} \;
Windows 环境
PowerShell 方案(推荐,兼容性好)
# 处理当前目录下的直接子文件夹 Get-ChildItem -Directory -Name "00*" | ForEach-Object { Rename-Item $_ "540-$_" } # 递归处理所有层级的00开头文件夹 Get-ChildItem -Directory -Recurse -Name "00*" | ForEach-Object { Rename-Item $_ "540-$_" }
-Directory:仅筛选文件夹,完全不会触碰任何文件-Recurse:可选参数,开启后会处理所有子目录中的目标文件夹
批处理脚本(CMD)
@echo off for /d %%d in (00*) do ren "%%d" "540-%%d"
/d:指定只遍历目录,自动跳过所有类型的文件
内容的提问来源于stack exchange,提问作者Aidan roberjot
相关产品推荐
相关产品推荐

