70pt
シェルではなくPerlになってしまうのですが、、
#!/usr/bin/perl $old = "$ARGV[0]"; @stat = stat $old; ($sec,$min,$hour,$mday,$mon,$year) = localtime($stat[9]); $mon++;$year+=1900; #printf "%04d/%02d/%02d %02d:%02d:%02d\n",$year,$mon,$mday,$hour,$min,$sec; $new = "$old" . sprintf "_%04d%02d%02d%02d%02d%02d",$year,$mon,$mday,$hour,$min,$sec; #print "$new\n"; rename $old,$new or die "$!";
上記スクリプトを適当な名前で保存し、引数にファイル名を指定して実行してみて下さい。
$ rename.pl log.txt
注:カレントディレクトリのファイル名のみ対象です。
Solarisでうまく行くか心許ないですが。実行属性をつけてください。
#!/bin/sh
mv $1 logfile_`date +%Y%m%d%H%M%S`
回答ありがとうございます。
うまくいきました。
上記を、
rename.sh
という名前で
/export/home/hogehoge/bin
に保存し、
/export/home/hogehoge/bin/rename.sh /tmp/testfile.log
を実行したところ、カレントディレクトリ以外でもうまくいきました。
※使い方がおかしかったらご指摘いただければ幸いです。