#!/usr/bin/perl
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/
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
;