-1

我有几个包含照片的文件夹,每个文件夹平均有 15000 张照片,现在我想要一个脚本来重命名文件。可能将文件 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 应该改变什么才能让它像我想要的那样,我会添加脚本,我发现自己没有写。

4

1 回答 1

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
于 2012-10-05T14:12:53.417 回答