Papierkorb auf Kommandozeilenebene

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Standardprogramme Office und Co ‹ Papierkorb auf Kommandozeilenebene


Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.




Einleitung

Minimalistische Systeme verzichten oft auf große Dateimanager. Trotzdem ist es möglich, sich ein "intelligentes" Papierkorbsystem einzurichten. Ein Weg dazu wäre die Verwendung des Kommandozeilenprogramms Debianpackage.png trash-cli in Verbindung mit Debianpackage.png cron bzw. Debianpackage.png anacron.

trash-cli

Das Programm findet sich in den offiziellen Quellen, die Installation ist denkbar einfach:

root@debian:~# apt install trash-cli

Trash-cli bringt mehrere Befehle mit:

trash bzw. trash-put
trash-empty
trash-list
trash-restore
trash-rm

Die Verwendung der einzelnen Befehle ist selbsterklärend, die Dokumentation in den Manpages gut und mit Beispielen versehen.

Für die schnellere Benützung der einzelnen Befehle in der Kommandozeile bietet sich natürlich das Abkürzen mit Aliases an, zB:

alias te='trash-empty'
alias tl='trash-list'
alias tp='trash-put'
alias tu='trash-restore'
alias trm='trash-rm'

Einrichtung eines Cronjobs zur Leerung

Cron bzw. auf Laptops auch Anacron werden bei der Grundinstallation von Debian mitinstalliert und grundlegend eingerichtet.

Wir wollen nun, dass (Ana)cron in Zukunft täglich überprüft, ob im Papierkorb Dateien liegen, die älter als 10 Tage sind und diese dann endgültig löscht.

Dazu erstellen wir als Root ein Skript mit dem Namen /etc/cron.daily/trash-empty mit folgendem Inhalt:

#!/bin/sh
set -e

# Lösche die Dateien im Papierkorb von Root, die älter als 10 Tage sind
trash-empty 10

# Lösche auch die Userdateien im Papierkorb, die älter als 10 Tage sind
runuser USERNAME -c 'trash-empty 10'

Da Cronjobs prinzipiell im Pfad von Root ausgeführt werden, ist die Verwendung von runuser aus Debianpackage.png util-linux wichtig. Auf diese Art kann die Aufgabe ohne Abfragen des Userpassworts von Root erledigt werden. USERNAME muss natürlich angepasst werden.

Mittels folgenden Befehls machen wir den Job jetzt ausführbar:

root@debian:~# chmod +x /etc/cron.daily/trash-empty

Ab dem nächsten Aufruf von cron.daily werden nun täglich die Papierkörbe auf zu löschende Dateien kontrolliert. Die Anzahl der Tage, ab welchen eine Datei gelöscht werden soll, lässt sich natürlich selbst festlegen.

Schlussbemerkung

Auf diese einfache Weise haben wir ein mehr oder weniger intelligentes Papierkorbsystem auf Kommandozeilenebene, um das man sich im Prinzip nicht weiter zu kümmern braucht. Weiters ist es so auch möglich, die einzelnen Trash-Befehle in Terminal-Dateimanager einzubauen.

Manpages