トップ «前の日記(2007-09-16) 最新 次の日記(2007-09-21)» 編集

tito Memo

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|
2010|02|04|05|06|08|
2011|01|02|03|08|10|12|
2012|01|
2013|03|04|

個人的なメモを記していくためのページです。


2007-09-18

* ファイルのタイムスタンプを変えたくない

何かの処理たとえば mp3ファイルのタグを書き換えたりとかjpgの縦横を変えたりとかしたときにタイムスタンプを元のままにしたいときがある。そういう時のためにあらかじめタイムスタンプを記録しておいて、何がしかの処理が済んだ後でタイムスタンプを元に戻すperlスクリプト。エラーチェックはなし。

 #! /usr/local/bin/perl
 
 if( $ARGV[0] eq "-w" ){
     shift;
     $now = time;
     while(<>){
         ($m, $filename) = split();
         print "$m $now $filename ";
         $ret =  utime $now, $m, $filename;
         print "$ret\n";
     }
 
 }
 else{
     
     while( @ARGV ){
         $filename = $ARGV[0];
         @st = stat( $filename );
         if( @st ){
             $m = @st[9];
             print "$m $filename\n";
         }
         shift;
     }
 }

あらかじめ

$ perl foo.pl *.mp3 > bar

のようにしてタイムスタンプ情報を保存しておく。処理が済んだ後にファイルbarの情報を元に戻す。

$ perl foo.pl -w < bar

windowsで動作確認した。けど空白を含むファイル名とかあったらしらない。

[]

このページ内のリンクがクリックされたことを知るのにjavascriptを使用しています。javascriptを無効にするとあなたがどのリンクをクリックしたか通知されなくなります。javascriptを無効にしてもこのページの閲覧に問題はありません。javascriptを無効にするページもご覧ください。
クラシック・ドーム クラシック・ドームソフト・ドーム ソフト・ドームソフト・リム ソフト・リム
キャップ10個入り。3種類の詰め合わせ(3種x2=6個入り)の、トラックポイント・キャップ・コレクションはIBMダイレクトで945円(税込み)