#!/usr/bin/perl #ディレクトリ構成リスト出力 #パラメータ1:ディレクトリ フルパス指定) #パラメータ2:ディレクトリ構成リスト フルパス指定) $passname = $ARGV[0]; $ofile = $ARGV[1]; open (OUF,">".$ofile)|| print("parm2 faild. cannot open. $parm2=$ofile"); if (-d $passname) {} else {print("parm1 is not directry. parm1=$passname");} &listdir($passname); sub listdir { my($passname) = @_; my($filename) = ''; &dinfpr($passname); opendir(DIR,$passname); foreach $filename ( sort(readdir(DIR)) ) { if ($filename =~/^\.+/) { } else { my($fullpass) = $passname."/".$filename; if (-d $fullpass ) { &listdir($fullpass); } else { &finfpr($fullpass); } } } return 0 ; } sub finfpr { my($filename) = @_; ($device,$inode,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime, $ctime,$blksize,$blocks) = stat($filename); ($ss,$mm,$hh,$dd,$mo,$ye,$we,$dc,$st)=localtime($atime); $atimew=sprintf("%04d%02d%02d%02d%02d%02d",$ye+1900,$mo+1,$dd,$hh,$mm,$ss); ($ss,$mm,$hh,$dd,$mo,$ye,$we,$dc,$st)=localtime($mtime); $mtimew=sprintf("%04d%02d%02d%02d%02d%02d",$ye+1900,$mo+1,$dd,$hh,$mm,$ss); ($ss,$mm,$hh,$dd,$mo,$ye,$we,$dc,$st)=localtime($ctime); $ctimew=sprintf("%04d%02d%02d%02d%02d%02d",$ye+1900,$mo+1,$dd,$hh,$mm,$ss); printf OUF ("F::%-1s::%14s::%09s::\n",$filename,$mtimew,$size); } sub dinfpr { my($passname) = @_; ($device,$inode,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime, $ctime,$blksize,$blocks) = stat($passname . "/" . $filename); printf OUF ("D::%-1s::\n",$passname."/"); }