#!/usr/bin/perl # timestamp-rename # by Jon Jensen # 2004-09-13 # Renames files to match their last-modified timestamp. use warnings; use strict; for (@ARGV) { (my $ext = $_) =~ s/.*\.//; my ($Y, $m, $d, $H, $M, $S) = (localtime((stat)[9]))[5,4,3,2,1,0]; $Y += 1900; ++$m; $_ = sprintf('%02u', $_) for ($m, $d, $H, $M, $S); my $this = "$Y$m$d-$H$M$S"; my $file; my $n = 0; while (1) { $file = $this; $file .= '.' . $n if $n > 0; $file .= '.' . $ext if $ext; last unless -f $file; ++$n; } print "$_ -> $file\n"; rename $_, $file or die "Error: $!\n"; }