| Filename | DateModified | After Rename |
| --- | --- | --- |
| aaa.mp3 | 20230114 | 20230114_1.mp3 |
| bbb.mp3 | 20230113 | 20230113_1.mp3 |
| ccc.mp3 | 20230114 | 20230114_2.mp3 |
| ddd.mp3 | 20221205 | 20221205_1.mp3 |
| eee.mp3 | 20230113 | 20230113_2.mp3 |
我有一个文件夹"/volume1/music/",里面有多个随机命名的MP3文件。
我想将文件重命名为修改日期,并添加递增后缀以避免同名。
我使用了下面的代码,但不知道如何处理counter后缀
cd "/volume1/music/"
counter=1
for file in *.mp3; do
cdate=$(date -r "$file" +"%Y%m%d")
echo "$cdate"
if [ -f "$cdate" ]; then
set counter=counter+1
else
set counter=0
fi
echo mv "$file" "$cdate"_"$counter"
done
谢谢你的帮助!
2条答案
按热度按时间hwamh0ep1#
只需将计数器初始化移到循环内部,并通过反复测试全名而不仅仅是日期字符串的存在来递增。
可以添加测试以避免重命名已经具有正确名称格式的文件。
ygya80vv2#
我使用了下面的代码,但不知道如何处理counter后缀
大概是这样的
echo
。