我生成了一系列延时图像并按顺序命名它们{0000..9999}.jpg
这对于浏览整个集合来说不是很好,因为很难判断给定图像何时从其文件名中获取。我想重命名它们,以便它们的名称包含它们的创建日期,例如:
0000.jpg → 20140815-142800-0000.jpg
0001.jpg → 20140815-142800-0001.jpg
0002.jpg → 20140815-142800-0002.jpg
保留原始文件名元素很重要,确切的日期格式并不那么重要,只要它是文件名安全且易于理解即可。我上面的示例以有利于按日期排序的方式将其插入到前面。
如果你想要测试文件的工具,下面将创建 10 个文件,创建时间递增:
for i in {00..02}; do touch --date "2014-08-15 $i:$i:$i" 00$i.jpg; done
您可以使用
rename
真正的 Perl 表达式这使文件具有自纪元以来的时间。查找为整理,差为阅读。
这里唯一的问题是你需要匹配整个文件名(这样你就可以
$&
在替换中统计——也就是整个匹配)。对于非常复杂的名称,这可能会让人有点厌烦。我们可以在此基础上构建更传统的日期格式:
还有一些基于 bash 的简单文件名(如示例):
这是我重新设计的东西,所以我可以真正理解发生了什么。谢谢。