我想知道如何使用时间戳更改文件名但保留文件的初始名称。
原因: 我的文件的时间戳已被微波改变,所以我想将时间和日期保留在文件名中。
例如:
初始文件名
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!"