我的文件夹列为 230101 230102 230103 - 无限每日制作我需要一种 bash 或批处理的方法将文件夹重命名为 2023-01-01 作为示例但我需要它自动化所以问题是我们需要添加数字 20 在文件夹名称的开头和两个 - 每个文件夹 有什么建议吗?
我试图将文件名作为变量,但我不断收到很多错误,所以我需要有人指导我。
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)