我有上传文件的文件夹,有1,000-20,000种不同类型的文件(pdf,jpg,wmv ...等),文件名和长度不同,名称中有空格等。
我正在尝试制作一个脚本来定期重命名它们,但我希望它们按“最早的日期优先”排序,新名称的格式为YYYT000001.xxxx ... YYYY036242.xxxx(其中YYYY是固定文本“Jan”或Dec“(我将在脚本中手动输入),xxxx是原始文件扩展名。)
我尝试使用输入for i in $(ls -tr)
,因为它将按最早的日期排序,并尝试使用basename $i
等替换文件名。
我在网上搜索了但是我的厚头无法找到一个有效的脚本。
答案 0 :(得分:0)
使用他们在this question和this blog post中所说的内容,您只需按以下方式移动文件:
#!/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