假设我有两个文件夹:
ls /A/
01 - IncorrectName.flac
02 - otherincorrect.flac
ls /B/
01 - CorectName.flac
02 - Othercorrect.flac
我如何将文件从目录 A 移动到 B,但使用目录 B 中的文件名?
我可以用自动执行此操作吗$ mv /A/01 - IncorrectName.flac /B/01 - CorrectName.flac
?
所有文件名的前 5 个字符始终为“NN - ”
答案1
我不确定我明白你想要什么,但在 bash 中这可能是这样的:
#! /bin/bash
for file in "$1"/[0-9][0-9]*.flac ; do
newname="$2"${file#"$1"}
newname=${newname:0:5+${#2}}
mv "$file" "$newname"*
done
更新: 应该与命令行参数一起使用。诀窍是字符串的长度不再是常数,因此${#2}
。