Letzte Nacht hatte ich ein Skript ein wenig verrückt und erstellen Sie eine Reihe von Verzeichnissen zwischen 3:00 und 3:09 Uhr. Gibt es einen schnellen Liner, der diese aufspüren und für mich entfernen wird?Entfernen Sie Dateien, die zwischen bestimmten Zeitstempeln erstellt wurden.
6
A
Antwort
6
finden verwenden Wenn Sie für die ersten und letzten (chronologisch) Verzeichnisse durchsuchen können Sie löschen möchten, dann können Sie finden Verwendung:
find . -newer first -not -newer last -type d
Und wenn die Ausgang passt Ihnen, gehen Sie für das Löschen
oder mit expliziten Datumsstempel:
find . -newermt "2010-03-31 0300" -not -newermt "2010-03-31 0310" -type d
0
einfach
find . -type d -newermt "2010-03-31 0300" -and \(-not -newermt "2010-03-31 0310" \) -exec rm -rf {} \;
+0
Dies löscht die Verzeichnisse mit all ihren Inhalten, nicht nur die Dateien. – alk
1
können Sie dies versuchen, wenn Sie in nur einem Verzeichnis und dem fünften Feld der ls -ltrog
Ausgabe der Zeit arbeiten wird.
ls -ltrog | awk '$5~/03:0[0-9]/{$1=$2=$3=$4=$5="";gsub("^ +",""); cmd="rm \047"$0"\047";system(cmd) }'
Das Ausführen dieser gibt die Flagge xargs: unerreichtes einzelnes Zitat; Standardmäßig sind Anführungszeichen speziell für Xargs, es sei denn, Sie verwenden die Option -0 –