ディレクトリの中をを再帰的にたどってすべてのファイルに対してなにかの処理をするには
PHP 2013/10/14
function foo($path) {
// ここでなにかの処理
...;
}
function recursive($dir) {
if (!file_exists($dir)) {
return;
}
$dhandle = opendir($dir);
if ($dhandle) {
while (false !== ($fname = readdir($dhandle))) {
if (is_dir( "{$dir}/{$fname}" )) {
if (($fname != '.') && ($fname != '..')) {
recursive("$dir/$fname");
}
} else {
foo($dir/$fname);
}
}
closedir($dhandle);
}
foo($dir);
}
Perl 2015/04/08
sub recursive {
my ($dir, $p) = @_;
my @files = glob("$dir/*");
foreach my $file (@files) {
if (-d $file) {
recursive($file, $p);
} else {
$p->($file);
}
}
}
recursive('.', sub {
# ここでなにかの処理
# print "$_[0]\n";
});
sh (シェルスクリプト) 2013/09/13
find
コマンドとその -exec
オプションか、
xargs
コマンドをパイプでつないでうまくコマンドを組み立てる。