You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
#!/usr/bin/perl
|
|
|
|
# $RCSfile: vanish,v $$Revision: 4.1 $$Date: 92/08/07 17:20:54 $
|
|
|
|
sub it {
|
|
if ($olddir ne '.') {
|
|
chop($pwd = `pwd`) if $pwd eq '';
|
|
(chdir $olddir) || die "Directory $olddir is not accesible";
|
|
}
|
|
if (!-d .deleted) {
|
|
print `mkdir .deleted; chmod 775 .deleted`;
|
|
die "You can't remove files from $olddir" if $?;
|
|
}
|
|
$filelist =~ s/ $//;
|
|
$filelist =~ s/#/\\#/g;
|
|
if ($filelist !~ /^[ \t]*$/) {
|
|
open(lastcmd,'>.deleted/.lastcmd');
|
|
print lastcmd $filelist,"\n";
|
|
close(lastcmd);
|
|
print `/bin/mv $startfiles$filelist .deleted$force`;
|
|
}
|
|
if ($olddir ne '.') {
|
|
(chdir $pwd) || die "Can't get back to original directory $pwd: $!\n";
|
|
}
|
|
}
|
|
|
|
while ($ARGV[0] =~ /^-/) {
|
|
$_ = shift;
|
|
/^-f/ && ($force = ' >/dev/null 2>&1');
|
|
/^-i/ && ($interactive = 1);
|
|
if (/^-+$/) {
|
|
$startfiles = '- ';
|
|
last;
|
|
}
|
|
}
|
|
|
|
chop($pwd = `pwd`);
|
|
|
|
while ($file = shift) {
|
|
if ($file =~ s|^(.*)/||) {
|
|
$dir = $1;
|
|
}
|
|
else {
|
|
$dir = '.';
|
|
}
|
|
|
|
if ($interactive) {
|
|
print "vanish: remove $dir/$file? ";
|
|
next unless <stdin> =~ /^y/i;
|
|
}
|
|
|
|
if ($file eq '.deleted') {
|
|
print stderr "To delete .deleted (the trashcan) use the 'empty' command.\n";
|
|
next;
|
|
}
|
|
|
|
if ($dir ne $olddir) {
|
|
do it() if $olddir;
|
|
$olddir = $dir;
|
|
}
|
|
|
|
$filelist .= $file; $filelist .= ' ';
|
|
}
|
|
|
|
do it() if $olddir;
|