Is there a Linux script / application which, instead of deleting files, moves them to a special “trash” location? I’d like this as a replacement for rm
(maybe even aliasing the latter; there are pros and cons for that).
By “trash” I mean a special folder. A single mv $* ~/.trash
is a first step, but ideally this should also handle trashing several files of the same name without overwriting older trashed files, and allow to restore files to their original location with a simple command (a kind of “undo”). Furthermore, it’d be nice if the trash was automatically emptied on reboot (or a similar mechanism to prevent endless growth).
Partial solutions for this exist, but the “restore” action in particular isn’t trivial. Are there any existing solutions for this which don’t rely on a trash system from a graphical shell?
(As an aside, there have been endless discussions whether this approach is justified, rather than using frequent backups and VCS. While those discussions have a point, I believe there’s still a niche for my request.)
Best Answer
There is a specification (draft) for Trash on freedesktop.org. It is apparently what is usually implemented by desktop environments.
A commandline implementation would be trash-cli. Without having had a closer look, it seems to provide the funtionality you want. If not, tell us in how far this is only a partial solution.
As far as using any program as replacement/alias for
rm
is concerned, there are good reasons not to do that. Most important for me are:rm
's options and act accordingly