GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Löschen von Dateien, die älter als 30 Tage sind, basierend auf dem Dateinamen als Datum

Hier ist eine Bash-Lösung.

f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
    fdate=$(echo $file | tr _ -)
    fsec=$(date +%s --date=${fdate/.txt/})
    if [[ $fsec -lt $f30days ]]; then
        echo "rm $file"
    fi
done

Ich beendete es mit "echo rm $file " Anstatt Ihre Dateien wirklich zu löschen, wird das Ergebnis vorher getestet.


Mit zsh :

zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)

Entfernen Sie die echo -E wenn glücklich.

Auf einem GNU-System und mit der GNU-Shell (bash ), könnten Sie etwas Annähern tun mit:

start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
  [[ $file > $start ]] && list+=("$file")
done
if (( ${#list[@]} > 0)); then
  echo -E rm -i "${list[@]}"
fi

Linux
  1. Wie richte ich einen Cron ein, um täglich eine MySQL-Datenbanksicherung durchzuführen und die älteren Sicherungsdateien zu entfernen, die älter als 10 Tage sind?

  2. So entfernen Sie Dateien, die älter als N Tage sind, mit tmpreaper in Linux

  3. Berechnen Sie den gesamten belegten Speicherplatz nach Dateien, die älter als 180 Tage sind, mit find

  4. Kopieren von Dateien basierend auf dem Änderungsdatum in Linux

  5. So erstellen Sie Tar für Dateien, die älter als 7 Tage sind, mithilfe von Linux-Shell-Skripten

So löschen Sie Dateien, die älter als die angegebenen Tage in Linux sind

Dateien oder Ordner finden und löschen, die älter als x Tage sind

Wie löschen Sie Dateien, die älter als ein bestimmtes Datum in Linux sind?

Finden Sie alle Dateien, die älter als eine Minute sind

Ordnungsgemäßes Löschen von Dateien, die älter als 30 Tage sind

Linux:Verwenden von find zum Auffinden von Dateien, die älter als <Datum> sind