abbbi / nullfsvfs

a virtual black hole file system that behaves like /dev/null
GNU General Public License v3.0
290 stars 12 forks source link

Easily selectively destroy temp files #2

Open hopeseekr opened 4 years ago

hopeseekr commented 4 years ago

The Problem

Linux stores lots of cache files I don't give a damn about that take up many GBs of space. Today, I just reclaimed over 23 GB of space from just deleting one user's ~/.cache/ directories.

The issue arises that rm is not very safe and is very unwieldly when it comes to excluding patterns of files/directories I want to keep, while also having various race conditions of not deleting files added once the process starts.

To get past this, I wanted to use rsync, but it has no ability to JUST delete files. You have to copy them somewhere, first.

The Solution

Enter nullfsvfs:

This is what I now have in my /etc/cron.daily/clean-cache:

#!/bin/bash

rsync -rv --remove-source-files --exclude={composer,spotify,skype,thumbnails,vim} /home/*/.cache/ /run/media/sinkhole/
for user in `ls /home`; do
    find /home/$user/.cache/ -type d -empty -delete
done

Update: I have officially released this as part of my BashScripts collection:

https://github.com/hopeseekr/BashScripts/blob/master/cron.daily/00_clear-cache

image

hopeseekr commented 4 years ago

Hey!!! I LOVE how you slapped a label on this and linked to it in the README (via 60b74d95)!!

I'm going to use this trick myself and teach all of my future teammates!!