A safe rm

write a file: ~/rm.sh.

#!/bin/bash
#
#  move files to trash bin, rather than deleting them
#  (and doesn't overwrite previously deleted files of the same name).

OS=$(uname -s)
case $OS in
	'Darwin')
		trash_dir="$HOME/.Trash"
		;;
	'Linux')
		trash_dir="$HOME/.local/share/Trash/files"
		;;
esac		

if [ ! -d $trash_dir ]; then
    echo "Creating Trash directory $trash_dir."
    mkdir $trash_dir
fi

# change delimiter $IFS to newline
IFS='
'

for file in $@; do
	base=$(basename "$file")
    newfile=$base
    while [ -e $trash_dir/$newfile ]; do
		random_suffix=$RANDOM
		newfile=${base}.${random_suffix}
	done
	mv "$file" "$trash_dir/$newfile"
done

unset IFS

modify ~/.bashrc.

alias remove='/bin/rm'
alias rm='~/rm.sh'
Homepage
Comments

Hide Comments