Wie lösche ich in Unix alle nach Jahr sortierten Dateien?

Wie lösche ich in Unix alle nach Jahr sortierten Dateien?

Ich muss alle Dateien in einem Verzeichnis löschen, die im Jahr 2018 erstellt wurden. Welchen Befehl kann ich dafür verwenden?

Antwort1

Option verwenden find -newermt:

find /path/to/directory -type f -newermt 2018-01-01 ! -newermt 2019-01-01 -print

oder zum weniger Nachdenken:

y=2018
find /path/to/directory -type f -newermt $y-01-01 ! -newermt $((y+1))-01-01 -print

Ändern Sie -printes zu -delete, wenn Sie mit dem Ergebnis zufrieden sind.

Antwort2

Ein Skript wie dieses:

DIR="$1"
for f in "$DIR"/*
do
    FileDate=$(stat -c %y "$f")
    if [[ "${FileDate:0:4}" = "2018" ]] ; then
        rm "$f"
    fi
done

Rufen Sie das Skript auf und übergeben Sie den Verzeichnisnamen, zBkill2018 /home/me/Documents

verwandte Informationen