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'
Hide Comments