• ベストアンサー

あるディレクトリのファイルの名前を「更新日時」にしたいのですが・・

(1) あるディレクトリの中の全てのファイルについて (2) 例えば 2007/1/2 3:45 に作成したファイル   aaa.dat のファイル名を   2007-01-02-0345-aaa.dat 方法はないでしょうか?perl でも bash でも良いのですが・・ (ちょっと事情があってあせっています・・) よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • rafysta
  • ベストアンサー率45% (24/53)
回答No.2

#!/bin/bash targetdir=$1 for f in $targetdir/* do mv $f $targetdir/`date +%Y-%m-%d-%H%M`-`basename $f` done 引数にターゲットのディレクトリを指定して実行。

white-tiger
質問者

お礼

お返事遅れて済みません。 ありがとうございます!

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

use strict; use warnings; use POSIX qw(strftime); foreach my $fname (glob '*') { my $newname = strftime "%Y-%m-%d-%H-%M-%S-$fname", localtime((stat $fname)[9]); print $newname, "\n"; } 手抜きで実行したディレクトリのファイルしか扱えません。 適当にいじってください。

white-tiger
質問者

お礼

お返事遅れて済みません。 ありがとうございます!