#analyzer
HDDのフォーマット
#fdisk /dev/hda >d // パーティションテーブルからいらないものを削除 >n // 新たなパーティション作成 >w // パーティションテーブルの反映 #mkfs -t ext3 /dev/hda1
DVD2ISO
dvdbackup -M -i/dev/dvd -o/tmp/dvdwork mkisofs -udf -dvd-video -o~/<TITLE>.iso /tmp/dvdwork/<TITLE>
再帰的にディレクトリ配下のファイルを対象に任意の処理を行う (recursive.pl)
package recursive;
sub trimer
{
$var = shift;
$var =~ s/^\s*(.+?)\s*[\/,\\]*\s*$/$1/;
return $var;
}
sub go_func
{
my $target = shift;
if (!defined ($func)) {
return 0;
}
&$func ($target);
}
sub recursive_dir
{
my $fullpath = trimer (shift);
#print "enter dir ... \"".$fullpath."\"\n";
my $command = "ls \"$fullpath\"";
my @items = `$command`;
foreach my $item (@items)
{
my $file = trimer ($item);
my $target = "$fullpath/$file";
if (-d $target)
{
recursive_dir ($target);
}
else
{
go_func ($target);
}
}
}
sub recursive
{
$func = shift;
my $top = trimer (shift);
if (!defined ($top)) {
$top = '.';
}
if (-d $top)
{
recursive_dir ($top);
}
else
{
go_func ($top);
}
}
1;
使い方
ホームディレクトリ以下のファイルを列挙します
require ("recursive.pl");
sub func
{
print shift;
}
my $dir = "/home"; recursive::recursive (\&func, $dir);