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

如何用Bash脚本将所有子目录名称转为小写?

批量将目录及子目录名称转为小写的Bash方案

可以用find命令配合循环实现,核心是要从最底层的子目录开始向上处理,避免父目录名称变更后子目录路径失效。

单行执行命令

直接在终端运行以下命令即可完成批量转换:

find . -type d -depth | while read -r dir; do
  lower_dir=$(echo "$dir" | tr '[:upper:]' '[:lower:]')
  if [ "$dir" != "$lower_dir" ]; then
    mv -v "$dir" "$lower_dir"
  fi
done

命令细节解释

  • find . -type d -depth:遍历当前目录下所有类型为目录的项,-depth参数强制find从最深层级的目录开始输出,确保先修改子目录,再修改其父目录,避免路径错误。
  • tr '[:upper:]' '[:lower:]':将目录名称中的所有大写字母转换为小写。
  • mv -v "$dir" "$lower_dir":仅当原目录名与转换后的小写名称不一致时执行重命名,-v参数会打印每一步的重命名操作,方便跟踪进度。
  • read -r:正确处理包含空格或特殊字符的目录名称,避免被错误分割。

注意事项

  • 执行前建议备份目标目录,防止意外操作导致数据丢失。
  • 若要处理指定目录而非当前目录,将find命令中的.替换为目标目录的绝对或相对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:10:47