在文件夹名称中添加数字 20,并在各部分之间添加 (-)

Amr*_*abi 1 bash rename move

我的文件夹列为 230101 230102 230103 - 无限每日制作我需要一种 bash 或批处理的方法将文件夹重命名为 2023-01-01 作为示例但我需要它自动化所以问题是我们需要添加数字 20 在文件夹名称的开头和两个 - 每个文件夹 有什么建议吗?

我试图将文件名作为变量,但我不断收到很多错误,所以我需要有人指导我。

pro*_*tob 5

new_dir您可以使用从名称子字符串创建名称的循环dir。glob??????/用于仅匹配具有 6 个字符名称的目录:

#!/bin/bash

for dir in ??????/; do
  dir=${dir%/}
  new_dir="20${dir:0:2}-${dir:2:2}-${dir:4:2}"
  if [ -d "$new_dir" ]; then
    mv -n "${dir}"/* "$new_dir"/
    rmdir "${dir}"
  else
    mv "$dir" "$new_dir"
  fi
done
Run Code Online (Sandbox Code Playgroud)