Joopi
[Shell] Dateien regelmäßig löschen - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [Shell] Dateien regelmäßig löschen (/showthread.php?tid=579)



Dateien regelmäßig löschen - Joopi - 22-05-2024

In einem Ordner sammeln sich ständig Dateien mit bestimmten Extensions an, die ich dort nicht haben möchte. Das manuelle Löschen geht mir mittlerweile auf die Nerven, also habe ich mich mal wieder an ein Shell-Skript begeben und lasse die unerwünschten Dateien nun regelmäßig über einen Cronjob löschen.

Die Lösung war zunächst einfach, denn ein bisschen Erfahrung konnte ich im Laufe der Zeit sammeln, um ein Shell-Skript auf die virtuellen Beine zu stellen.

Die einfache Variante.

Code:
# Angabe des Ordner, in dem die unerwünschten Dateien liegen
ordner="/ordnername/"
#
# Dateien mit den unerwünschten Extensions durch Option -o (OR) angegeben
find "$ordner" -type f \( -name "*.jpg" -o -name "*.pdf" -o -name "*.png" \) -delete

Die etwas feinere, aber auch für mich kompliziertere Variante mit Schleife.

Code:
# Angabe des Ordner, in dem die unerwünschte Dateien liegen
ordner="/ordnername/"
#
# Array mit den unerwünschten Extensions erstellen
extensions=("jpg" "pdf" "png")
#
# Dateien mit den unerwünschten Extensions löschen
for ext in "${extensions[@]}"; do
    find "$ordner" -type f -name "*.$ext" -delete
done

Den Cronjob habe ich auf 30 Minuten eingestellt, so dass die lästigen Dateien kaum noch meine andere Arbeit behindern.

Das Shell-Skript muss natürlich ausführbar sein. Und das wird mit folgendem Befehl in der Konsole bewerkstelligt.

Code:
chmod +x delete_files.sh

Unabhängig von der Wahl der Skriptsprache hätte dieses Skript auch in Python oder PHP oder sonstwas umgesetzt werden können. Ich fand die Umsetzung über ein normales Shell-Skripts ideal.