readded udpated scripts directory
This commit is contained in:
parent
cd053a412a
commit
f3117c81d9
84 changed files with 3210 additions and 0 deletions
54
scripts/newrm
Executable file
54
scripts/newrm
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
#!/bin/bash
|
||||
|
||||
# newrm--A replacement for the existing rm command.
|
||||
# This script provides a rudimentary unremove capability by creating and
|
||||
# utilizing a new directory within the user's home directory. It can handle
|
||||
# directories of content as well as individual files. If the user specifies
|
||||
# the -f flag, files are removed and NOT archived.
|
||||
|
||||
# Big Important Warning: You'll want a cron job or something similar to keep
|
||||
# the trash directories tamed. Otherwise, nothing will ever actually
|
||||
# be deleted from the system, and you'll run out of disk space!
|
||||
|
||||
archivedir="$HOME/.recycle-bin"
|
||||
realrm="$(which rm)"
|
||||
copy="$(which cp) -R"
|
||||
|
||||
if [ $# -eq 0 ] ; then # Let 'rm' output the usage error.
|
||||
exec $realrm # Our shell is replaced by /bin/rm
|
||||
fi
|
||||
|
||||
# Parse all options looking for '-f'
|
||||
|
||||
flags=""
|
||||
|
||||
while getopts "dfiPRrvW" opt
|
||||
do
|
||||
case $opt in
|
||||
f ) exec $realrm "$@" ;; # exec lets us exit this script directly.
|
||||
* ) flags="$flags -$opt" ;; # Other flags are for rm, not us.
|
||||
esac
|
||||
done
|
||||
shift $(( $OPTIND - 1 ))
|
||||
|
||||
# BEGIN MAIN SCRIPT
|
||||
# =================
|
||||
|
||||
if [ ! -d $archivedir ] ; then
|
||||
if [ ! -w $HOME ] ; then
|
||||
echo "$0 failed: can't create $archivedir in $HOME " >&2
|
||||
exit 1
|
||||
fi
|
||||
mkdir $archivedir
|
||||
chmod 700 $archivedir # A little bit of privacy, please
|
||||
fi
|
||||
|
||||
for arg
|
||||
do
|
||||
newname="$archivedir/$(date "+%S.%M.%H.%m").$(basename "$arg")"
|
||||
if [ -f "$arg" -o -d "$arg" ] ; then
|
||||
$copy "$arg" "$newname"
|
||||
fi
|
||||
done
|
||||
|
||||
exec $realrm $flags "$@" # Our shell is replaced by realrm.
|
||||
Loading…
Add table
Add a link
Reference in a new issue