find: Dateien älter als 5 Minuten löschen

Das Tool find bietet mit den Parameteren -ctime/-mtime nur die Möglichkeit nach Dateien mit Alter +/- N*24h zu suchen. Möchte man etwas spezieller werden und nach Minuten- oder Sekundenwerten suchen, um etwa Cache oder Temp-Files löschen zu können, kann man einen kleinen Umweg gehen. Hier ein kleines Bash-Snippet, das in diesem Fall dazu dient alte Konfigurationen für pxelinux (Format der Dateien: pxelinux.cfg/01-aa-bb-cc-dd-ee-ff) zu löschen.

#!/usr/bin/env bash
cd /srv/tftp/pxelinux.cfg
touch -t `date -d "-5 minutes" +"%Y%m%d%H%M"` /tmp/find.helper
find . ! -newer /tmp/find.helper -iname '01-*' -exec rm {} \;

Zunächst legt man sich mit touch ein File mit dem gewünschten Mindesalter der zu löschenden Dateien an und übergibt dieses File bei find als Parameter -newer. Ein Parameter -older existiert nicht, somit muss das ganze noch mit einem Ausrufezeichen negiert werden.

Einen Kommentar hinterlassen

Dein Kommentar