diff options
Diffstat (limited to 'gnu/usr.bin/perl/eg/down')
-rw-r--r-- | gnu/usr.bin/perl/eg/down | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/eg/down b/gnu/usr.bin/perl/eg/down new file mode 100644 index 0000000..bbb0d06 --- /dev/null +++ b/gnu/usr.bin/perl/eg/down @@ -0,0 +1,30 @@ +#!/usr/bin/perl + +$| = 1; +if ($#ARGV >= 0) { + $cmd = join(' ',@ARGV); +} +else { + print "Command: "; + $cmd = <stdin>; + chop($cmd); + while ($cmd =~ s/\\$//) { + print "+ "; + $cmd .= <stdin>; + chop($cmd); + } +} +$cwd = `pwd`; chop($cwd); + +open(FIND,'find . -type d -print|') || die "Can't run find"; + +while (<FIND>) { + chop; + unless (chdir $_) { + print stderr "Can't cd to $_\n"; + next; + } + print "\t--> ",$_,"\n"; + system $cmd; + chdir $cwd; +} |