tangetools/rn/rn
2020-10-26 20:04:10 +01:00

72 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
: <<=cut
=encoding utf8
=head1 NAME
rn - move file into wastebasket
=head1 SYNOPSIS
B<rn> I<file(s)>
=head1 DESCRIPTION
B<rn> move files to a wastebasket dir called B<.rm>. It is created in
$HOME directory if it cannot be found in any of the (grand*)parent
directories.
=head1 AUTHOR
Copyright (C) 2017 Ole Tange,
http://ole.tange.dk and Free Software Foundation, Inc.
=head1 LICENSE
Copyright (C) 2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
at your option any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
=head1 SEE ALSO
B<mv>(1), B<rm>(1)
=cut
find_rm_dir() {
dir="$1"
if [ -d "$1"/.rm ] ; then
echo "$1"/.rm
return 0
else
if [ "/" == "$(readlink -f "$dir")" ]; then
echo "$HOME"/.rm
return 0
fi
find_rm_dir "../$dir"
return $?
fi
}
rmdir="$(find_rm_dir .)"
mkdir -p "$rmdir"
mv --backup=numbered "$@" "$rmdir"