Tips en Trucs 2021

Prullenbak automatisch legen

Vergeet je steeds de Prullenbak te legen en verlies je daardoor GB's aan opslaggeheugen. Met AutoTrash gebeurt dit automatisch en volgens jouw voorkeuren.

AutoTrash installeren

Je kunt AutoTrash installeren via de standaard softwarebronnen van openSUSE Leap 15.3, maar dan werk je met een oude versie. AutoTrash is een Python programma en kan je ook installeren via de Python installatieopdracht:

dany@pindabook:~> pip install --user autotrash
Collecting autotrash
  Downloading autotrash-0.4.4-py3-none-any.whl (22 kB)
Installing collected packages: autotrash
  WARNING: The script autotrash is installed in '/home/dany/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed autotrash-0.4.4

Meteen krijg je daarbij de opmerking dat AutoTrash geïnstalleerd werd in een map die niet door het systeem gekend is. Je kunt het systeem daarvan op de hoogte brengen, maar dat is geen must. Zulke programma's kan je dan enkel starten als je er de map waarin ze staan bijtypt:

dany@pindabook:~> /home/dany/.local/bin/autotrash --help
Usage: autotrash -d 

Options:
  -h, --help            show this help message and exit
  -d DAYS, --days=DAYS  delete files older then DAYS number of days.
  -T DIRECTORY, --trash-path=DIRECTORY
                        empty the trash path in the given DIRECTORY instead of
                        using the user home directory
  -t, --trash-mounts    Process all user trash directories instead of just the
                        one in the home directory
  --max-free=M          only run if less then M megabytes of free space is
                        left.
  --delete=M            delete at least M megabytes.
  --min-free=M, --keep-free=M
                        set --delete to make sure M megabytes of space is
                        available.
  --trash_limit=M       make sure no more than M megabytes of space are used
                        by the trash.
  -D REGEX, --delete-first=REGEX
                        push files matching this REGEX to the top of the
                        deletion queue
  -v, --verbose         be more verbose, a must when testing something out
  -q, --quiet           only output warnings
  --check               report .trashinfo files without a real file
  --dry-run             just list what would have been done
  --stat                show the number, and total size of files involved
  -V, --version         show version and exit
  --install             set autotrash to run automatically with the given
                        options

Zoals je merkt start het programma. Om de installatiemap van AutoTrash aan het systeem toe te voegen, voeg je de volgende opdracht toe aan het opstartbestand van jouw shell (in de meeste distributies is dit de bash shell):

dany@pindabook:~> echo "export PATH=\"$HOME/.local/bin:\$PATH\"" >> .bashrc

De \-tekens zorgen ervoor dat de tekens die erop volgen letterlijk doorgegeven worden en niet door bash geïnterpreteerd worden. M.a.w. de regel export PATH="/home/dany/.local/bin:$PATH" wordt toegevoegd (>>) aan het opstartscript .bashrc. Na een herstart van de bash shell is de nieuwe instelling actief, maar je kunt dit ook zonder herstart activeren met de opdracht:

dany@pindabook:~> source ~/.bashrc

Om de AutoTrash opdracht nu uit te voeren, moet je de map niet meer meegeven:

dany@pindabook:~> autotrash --version
Version 0.4.4
Copyright (C) 2019 Bram Neijt 
License GPLv3+

AutoTrash gebruiken

Daar het gaat om bestanden en mappen automatisch te laten verwijderen, gaan we eerst en vooral eens kijken en testen wat de verschillende opties juist verwijderen. Daarvoor heeft AutoTrash de optie --dry-run, waarmee je AutoTrash de opdracht geeft om enkel weer te geven wat het van plan is te verwijderen zonder echt de opdracht uit te voeren. Ideaal om te testen:

dany@pindabook:~> autotrash -d 10 --dry-run
Remove /home/dany/.local/share/Trash/files/Home.desktop
Remove /home/dany/.local/share/Trash/info/Home.desktop.trashinfo
Remove /home/dany/.local/share/Trash/files/trash.desktop
Remove /home/dany/.local/share/Trash/info/trash.desktop.trashinfo

De -d 10 optie geeft aan dat alles wat ouder is dan 10 dagen uit de Prullenbak mag verwijderd worden. Dit gebeurt echter niet, want ook de optie --dry-run is aanwezig.

Als je veel opslagruimte hebt, kan je AutoTrash de opdracht geven enkel items ouder dan 10 dagen uit de Prullenbak te verwijderen, maar enkel als er nog minder dan 4 GB schijfruimte vrij is. Daarvoor voeg de optie --max-free 4096 (4096 MB = 4GB) toe:

dany@pindabook:~> autotrash -d 10 --max-free 4096 --dry-run

En aangezien er op mijn schijf nog meer dan 4 GB vrije schijfruimte is, wordt niets uit de Prullenbak verwijderd.

Om een bepaalde hoeveelheid schijfruimte vrij te maken, kan je de optie --delete gebruiken. Zo verwijderd de volgende opdracht 4 GB aan items uit de Prullenbak:

dany@pindabook:~> autotrash --delete 4096 --dry-run
Remove /home/dany/.local/share/Trash/files/Home.desktop
Remove /home/dany/.local/share/Trash/info/Home.desktop.trashinfo
Remove /home/dany/.local/share/Trash/files/trash.desktop
Remove /home/dany/.local/share/Trash/info/trash.desktop.trashinfo

Automatisch opruimen

Als je eenmaal de gewenste opties proefondervindelijk met de optie --dry-run hebt vastgesteld, kan je automatiseren. We gebruiken daarvoor een script dat we regelmatig laten uitvoeren. In dat script plaatsen we de autotrash opdracht met de gewenste opties. Als voorbeeld moeten alle bestanden ouder dan 30 dagen automatisch uit de Prullenmand verdwijnen:

dany@pindabook:~> echo '#!/bin/bash' > bin/autotrash.sh
dany@pindabook:~> echo "$HOME/.local/bin/autotrash -d 30" >> bin/autotrash.sh

Zoals je merkt, wordt ook de map waarin autotrash werd geïnstalleerd in de opdracht opgenomen (zie hierboven). M.a.w. het script ziet er bij mij (dany) zo uit:

dany@pindabook:~> cat bin/autotrash.sh 
#!/bin/bash
/home/dany/.local/bin/autotrash -d 30

Voorlopig is dit nog een eenvoudig tekstbestand. We maken er een uitvoerbaar script van met de opdracht:

dany@pindabook:~> chmod +x bin/autotrash.sh

Als volgt voegen we het script toe aan de opstartprocedure van de KDE Desktop:

Vanaf nu wordt bij elke start van de KDE Desktop de AutoTrash opdracht uitgevoerd. Test dit.

AutoTrash volledig van de computer verwijderen

Eerst verwijderen we via de Systeeminstellingen > Opstarten en afsluiten > Autostart het scriptbestand autotrash.sh.

Met de volgende opdracht verwijder je het script bin/autotrash.sh:

dany@pindabook:~> rm bin/autotrash.sh

Desnoods verwijder je de map waarin het AutoStart programma werd geïnstalleerd uit de startmappen van het systeem met de opdracht:

dany@pindabook:~> sed -i.bak '/.local\/bin/d' .bashrc     
dany@pindabook:~> cat .bashrc
# Sample .bashrc for SuSE Linux
# Copyright (c) SuSE GmbH Nuernberg

# There are 3 different types of shells in bash: the login shell, normal shell
# and interactive shell. Login shells read ~/.profile and interactive shells
# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all
# settings made here will also take effect in a login shell.
#
# NOTE: It is recommended to make language settings in ~/.profile rather than
# here, since multilingual X sessions would not work properly if LANG is over-
# ridden in every subshell.

# Some applications read the EDITOR variable to determine your favourite text
# editor. So uncomment the line below and enter the editor of your choice :-)
#export EDITOR=/usr/bin/vim
#export EDITOR=/usr/bin/mcedit

# For some news readers it makes sense to specify the NEWSSERVER variable here
#export NEWSSERVER=your.news.server

# If you want to use a Palm device with Linux, uncomment the two lines below.
# For some (older) Palm Pilots, you might need to set a lower baud rate
# e.g. 57600 or 38400; lowest is 9600 (very slow!)
#
#export PILOTPORT=/dev/pilot
#export PILOTRATE=115200

test -s ~/.alias && . ~/.alias || true

En inderdaad de export PATH opdracht is uit het .bashrc startscript verdwenen.

Tenslotte verwijder je het AutoStart Python programma met de opdracht:

dany@pindabook:~> pip uninstall autotrash
Found existing installation: autotrash 0.4.4
Uninstalling autotrash-0.4.4:
  Would remove:
    /home/dany/.local/bin/autotrash
    /home/dany/.local/lib/python3.6/site-packages/autotrash-0.4.4.dist-info/*
    /home/dany/.local/lib/python3.6/site-packages/autotrash/*
Proceed (y/n)? y
  Successfully uninstalled autotrash-0.4.4