AFAIK Trash can handle all unusual filenames.
Trash -l will list the sizes of all trashed files/directories, and sort output.
Trash -r DIR/FILE is a convenience feature to restore a single file to the directory it came from. Mistakenly Trashing a file in another directory would otherwise necessitate: Trash -r FILE ; mv FILE DIR.
Users of KDE >= 3.4 may wish to use the KTrash utility, which has a proper path restore feature.
1. edit the beginning of the Trash shell script,
or preferably
2. copy the beginning of the script into the file ~/.Trashrc
There are two variables that need to be set:
"TRASH" is the directory.
"EXCLUDE" is a regexp of files that are never deleted from TRASH.
Files
(except ".") must be prefixed with "./" , and separated by "|".
Special characters (including "." and "|") must be prefixed with a backslash
"/".
In summary, for KDE<3.4: EXCLUDE="\./\.directory\|\."
TRASH=${HOME}/Desktop/Trash
for Gnome : EXCLUDE="\."
TRASH=${HOME}/.Trash
Trash has a safety feature. If the first arg is "mv", Trash will exit. To Trash a file named "mv" use "Trash -- mv".