Linux, plaintext & minimalism
July 9, 2018

Trash-cli - A command-line interface to the FreeDesktop.org Trash

So, I’m sure I’m not the only user who has in the past mistakenly deleted the wrong file(s) in the shell. And it always seems to be that one super important document you just spent like five sweaty hours on as well. :/

This is where trash-cli comes into the picture. It’s a simple and straightforward command-line tool written in Python that works as a interface to the FreeDesktop.org trash. And instead of straight up deleting your files with the command rm, you can use trash to put them in your FreeDesktop.org trash and then recycle them at a later stage.


You put a file or folder in the trash with the command trash-put <file> or just trash <file. To list your trashed files you use the command trash-list:

$ trash-list
2018-07-09 14:14:04 /home/johan/Unpack-4461
2018-07-09 14:13:46 /home/johan/rsync-bosco-2018-06-17.log
2018-07-09 14:13:17 /home/johan/lol_felt_bad.jpg

To restore a file or a folder you use the command trash-restore followed by the corresponding number:

$ trash-restore
   1 2018-07-09 14:14:04 /home/johan/Unpack-4461
   2 2018-07-09 14:13:46 /home/johan/rsync-bosco-2018-06-17.log
   3 2018-07-09 14:13:17 /home/johan/lol_felt_bad.jpg
What file to restore [0..3]: 3

If you wish to recycle all your trashed files you can do so with the command trash-empty. Note that it’s also possible to only recycle files older than a specified value, for an example this example will only recycle files older than 30 days:

trash-empty 30


It’s available in both the official repositories for Arch Linux, Ubuntu and via the Python package manager pip with the name trash-cli.

Arch Linux:

# pacman -S trash-cli


# apt install trash-cli


$ pip install trash-cli --user
Tags: Trash | CLI


I don't have a commenting system simply because I haven't found a solution that I like. If you want to leave any feedback and/or have any questions feel free to contact me either via e-mail, the fediverse, by XMPP or by IRC (I'm Hund at freenode.net).