10-01-2019, 12:47 AM
I've made a script to put a file or folder into a recycle bin instead of a deleting it with rm (which could be problematic if you make an error).
In a file called usr/bin/trash, I've put the following:
Then I created 2 aliases:
When using rm, you actually put a file or folder into a __trash__ folder within the same directory. (Note: it will overwrite a pre-existing file of the same name previously 'deleted')
In case of a mistake, just move the file out of the __trash__ folder.
When using empty-trash, you delete all __trash__ folders on the computer. You need root privilege to do so.
You could make a Cron job to empty-trash regularly.
In a file called usr/bin/trash, I've put the following:
Code:
#!/bin/bash
# move a file or folder to a __trash__ folder (within the same directory)
if [ "$1" = "" ]; then
echo "You need a file or folder name.";
exit 1;
elif [ "$1" = "/" ]; then
echo 'You cannot put "/" in trash.';
exit 1;
fi
trashParentDir="$(dirname $1)";
mkdir -p "$trashParentDir/__trash__";
mv -vft "$trashParentDir/__trash__" "$1";
exit 0;
Then I created 2 aliases:
Code:
alias rm="trash"
alias empty-trash="sudo find / -depth -type d -name \"__trash__\" -exec rm -r '{}' ';'"
When using rm, you actually put a file or folder into a __trash__ folder within the same directory. (Note: it will overwrite a pre-existing file of the same name previously 'deleted')
In case of a mistake, just move the file out of the __trash__ folder.
When using empty-trash, you delete all __trash__ folders on the computer. You need root privilege to do so.
You could make a Cron job to empty-trash regularly.