OS X:如何根据时间戳更改文件名

OS X:如何根据时间戳更改文件名

我想知道如何使用时间戳更改文件名但保留文件的初始名称。

原因: 我的文件的时间戳已被微波改变,所以我想将时间和日期保留在文件名中。

例如:

初始文件名

CAFE_FINDER_.txt                 2014-04-18 01:09:37 

新文件名

CAFE_FINDER_20140418_010937.txt  2014-04-18 01:09:37

答案1

在终端中,您可以像这样更改文件名:

cd "path/to/the/folder"
old_filename="CAFE_FINDER_.txt"
new_filename=${old_filename%.*}$(date "+%Y%m%d_%H%M%S").${old_filename##*.}
mv "$old_filename" "$new_filename"

如果要使用文件的创建日期而不是当前日期,请将行更改为

new_filename=${old_filename%.*}$(stat -f %SB -t "%Y%m%d_%H%M%S" "$old_filename").${old_filename##*.}

在 Applescript 中:

do shell script 
"file='path/to/the/folder/CAFE_FINDER_.txt'
old_filename=$(basename \"$file\")
new_filename=${old_filename%.*}$(date '+%Y%m%d_%H%M%S').${old_filename##*.}
#for current date
#for creation date of the file:
#new_filename=${old_filename%.*}$(stat -f %SB -t '%Y%m%d_%H%M%S' \"$file\").${old_filename##*.}
mv \"$file\" \"$(dirname \"$file\")/$new_filename\"
"

我更希望 Applescript 能够构建一个水滴

答案2

有一款应用程序叫更好的 Finder 重命名可以做到这一点(除了许多其他重命名可能性之外)。您可以选择文件的创建和修改日期以及今天的日期,甚至文件中可能存在的 exif 日期。您可以使用日期时间重命名文件,也可以将日期附加或添加到当前文件名的前面。

测试版的唯一缺点是一次只能重命名 10 个文件。根据文件数量,可能值得投资约 20 美元

答案3

我使用这个脚本,它可以进行一些改进:

#!/bin/sh
cd "$1" || exit
for i in * ; do
  new=$(stat -c %y "$i"|awk '{print $1"_"$2}'|cut -f1 -d'.'|tr ':' '-')_$i
  mv "$i" "$new"
done
echo "finished!"

相关内容