1

我有将文件上传到的文件夹,其中包含 1,000-20,000 个不同类型的文件(pdf、jpg、wmv...等),文件名和长度不同,名称中带有空格等。

我正在尝试制作一个脚本来定期重命名它们,但我希望它们按“最早的日期优先”排序,新名称的格式为 YYYT000001.xxxx ... YYYY036242.xxxx(其中 YYYY 是固定文本“Jan”或Dec“(我会在脚本中手动输入),xxxx是原始文件扩展名)。

我尝试使用输入for i in $(ls -tr),因为它将按最旧日期排序,并尝试使用basename $i等替换文件名。

我已经在网上搜索过,但我的脑袋想不出一个工作脚本。

4

1 回答 1

1

使用他们在这个问题这篇博文中所说的话,您只需像这样移动文件:

#!/bin/bash
prefix="YYY"
i=0
for file in $(ls -tr)
do
    filename=$(basename "$file")
    extension="${filename##*.}"
    paddedIndex=$(printf "%06d" $i)
    mv $file ${prefix}${paddedIndex}.${extension}
    i=$(($i + 1))
done
于 2012-11-16T06:05:17.960 回答