# rmdirsimple.pl
use File::Find qw(finddepth);
use Cwd;
*name = *File::Find::name;
my @dirs = @ARGV;
my @legitdirs = grep { -d } @dirs;
finddepth (\&unlinkplus, @legitdirs);
# danger, danger. high voltage. use at own risk.
sub unlinkplus {
warn "current dir :" . cwd . "\n";
if (!-l && -d _) { # not a link, is a directory
warn "rmdir attempt :" . $name . "\n";
(rmdir($_) && warn "ok..." )
or warn "cannot rmdir $name:" . " $!";
} else {
warn "file unlink :" . $name . ">";
(unlink($_) && warn "ok..." )
or warn "can't unlink " . $name . "$!";
}
}
####
/usr/bin/perl rmdirsimple.pl a b
####
current dir :/home/k/kh/prlfrg/dat/a
file unlink :a/a.txt> at rmdirsimple.pl line 20.
ok... at rmdirsimple.pl line 21.
current dir :/home/k/kh/prlfrg/dat/a
rmdir attempt :a
ok... at rmdirsimple.pl line 17.
current dir :/home/k/kh/prlfrg/dat/b
file unlink :b/b.txt> at rmdirsimple.pl line 20.
ok... at rmdirsimple.pl line 21.
current dir :/home/k/kh/prlfrg/dat/b
rmdir attempt :b
ok... at rmdirsimple.pl line 17.
####
current dir :C:/cygwin/home/k/kh/prlfrg/dat/a
file unlink :a/a.txt> at rmdirsimple.pl line 20.
ok... at rmdirsimple.pl line 21.
current dir :C:/cygwin/home/k/kh/prlfrg/dat/a
rmdir attempt :a
cannot rmdir a: Permission denied at rmdirsimple.pl line 17.
current dir :C:/cygwin/home/k/kh/prlfrg/dat/b
file unlink :b/b.txt> at rmdirsimple.pl line 20.
ok... at rmdirsimple.pl line 21.
current dir :C:/cygwin/home/k/kh/prlfrg/dat/b
rmdir attempt :b
cannot rmdir b: Permission denied at rmdirsimple.pl line 17.