我有几个带照片的文件夹,每个平均有1.5万张照片,现在我想要一个脚本来重命名文件。 可以是文件的名称 obraz2.jpg.1到obraz2.jpg.1500现在每个文件名的chcaiłbym都被更改为创建日期,例如:010912-04-00-34.jpg文件从2012年9月1日起4分0秒34,有一个bash脚本
#!/bin/bash
# Copy jpg files in a directory to a new name based solely on creation date
# FROM: obraz2.jpg.1 > 1500 Created on: 2012-04-18 18:51:44
# TO: 20120418_185144.jpg
for i in *.*
do
# mod_date=$(stat -c "%y" "$i"|sed 's/\..*$//')
# mod_date=$(stat -c "%y" "$i"|awk '{print $1"_"$2}'|sed 's/\..*$//')
mod_date=$(stat --format %y "$i"|awk '{print $1"_"$2}'|cut -f1 -d'.'|sed 's/[: -]//g')
cp "$i" "$mod_date".jpg
done
我只是有一个问题就是他给的名字 010912-04-00-34.jpg这不是一个做20120418_185144.jpg的脚本应该改变什么来使它像我想要的那样,我会添加脚本,我发现自己没有写。
答案 0 :(得分:0)
要重新格式化日期字符串,您可以使用date
程序,如下所示:
for i in *.*; do
stat_date=$(stat --format %y "$i"|awk '{print $1"_"$2}' | cut -f1 -d'.'|sed 's/_/ /g')
date_fmt=$(date --date="$stat_date" +"%d%m%y-%H-%M-%S")
cp $i ${date_fmt}.jpg
done