Home Command line utilities Autotrash – A CLI Tool To Automatically Purge Old Trashed Files In Linux

Autotrash – A CLI Tool To Automatically Purge Old Trashed Files In Linux

By sk
Published: Last Updated on 1.4K views

Autotrash is a command line utility to automatically purge old trashed files. It will purge files that have been in the trash for more then a given number of days. You don't need to empty the trash folder or do SHIFT+DELETE to permanently purge the files/folders. Autortrash will handle the contents of your Trash folder and delete them automatically after a particular period of time. In a nutshell, Autotrash will never allow your trash to grow too big.

Install Autotrash in Linux

Autotrash is available in the default repositories of Debian-based systems. To install autotrash on Debian, Ubuntu, Linux Mint, run:

$ sudo apt-get install autotrash

On Fedora:

$ sudo dnf install autotrash

On other Linux distributions, you can install Autotrash with Pip package manager.

$ pip install --user autotrash

Automatically Purge Old Trashed Files Using Autotrash

Whenever you run autotrash, It will scan your ~/.local/share/Trash/info directory and read the .trashinfo files to find their deletion date. If the files have been in trash folder for more than the defined date, they will be deleted.

Let me show you some examples.

To purge files which are in the trash folder for more than 30 days, run:

$ autotrash -d 30

As per above example, if the files in your Trash folder are more than 30-days old, Autotrash will automatically delete them from your Trash. You don't need to manually delete them. Just send the unnecessary junk to your trash folder and forget about them. Autotrash will take care of the trashed files.

The above command will only process currently logged-in user's trash directory. If you want to make autotrash to process trash directories of all users (not just in your home directory), use -t option like below.

$ autotrash -td 30

Autotrash also allows you to delete trashed files based on the space left or available on the trash file system.

For example, have a look at the following example.

$ autotrash --max-free 1024 -d 30

As per the above command, autotrash will only purge trashed files that are older than 30 days from the trash if there is less than 1GB of space left on the trash filesystem. This can be useful if your trash filesystem is running out of the space.

We can also purge files from trash, oldest first, till there is at least 1GB of space on the trash filesystem.

$ autotrash --min-free 1024

In this case, there is no restriction on how old trashed files are.

You can combine both options (--min-free and --max-free) in a single command like below.

$ autotrash --max-free 2048 --min-free 1024 -d 30

As per the above command, autotrash will start reading the trash if there is less than 2GB of free space, then start keeping an eye on. At that point, remove files older than 30 days and if there is less than 1GB of free space after that remove even newer files.

As you can see, all command should be manually run by the user. You might wonder, how can I automate this task?? That's easy! Just add autotrash as crontab entry. Now, the commands will automatically run at a scheduled time and purge the files in your trash depending on the defined options.

To add these commands in crontab file, run:

$ crontab -e

Add the entries, for example:

@daily /usr/bin/autotrash -d 30

Now autotrash will purge files which are in the trash folder for more than 30 days, everyday.

For more details about scheduling tasks, refer the following links.

Please be mindful that if you have deleted any important files inadvertently, they will be permanently gone after the defined days, so just be careful.

Refer man pages to know more about Autotrash.

$ man autotrash

Suggested read:


Emptying Trash folder or pressing SHIFT+DELETE to permanently get rid of unnecessary stuffs from the Linux system is no big deal. It will just take a couple seconds. However, if you wanted an extra utility to take care of your junk files, Autotrash might be helpful. Give it a try and see how it works.

Resource:

You May Also Like

4 comments

MarkDubya September 7, 2018 - 10:24 pm

Autotrash is not in the AUR, where did you get that from? Instead use the community Arch package trash-cli: https://www.archlinux.org/packages/community/any/trash-cli/.

Reply
sk September 8, 2018 - 10:56 am

Autotrash is available in AUR – https://aur-dev.archlinux.org/packages/autotrash-git/. However, it didn’t work and it is not updated for a long time. I updated the guide. Thanks for pointing it out.

Reply
MarkDubya September 8, 2018 - 9:57 pm

No, it’s not available. There is no maintainer, therefore it will not appear when searching for it.

$ yay -S autotrash
==> Error: Could not find all required packages:
autotrash (Target)

Reply
bubba yarfkowitz August 24, 2019 - 8:59 pm

I like to empty all trash on startup. Is there a “zero day” option for autotrash? I’m currently using -d 1 but wonder if that can be reduced even further?

Thanks!

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More