7 Stimmen

Shell-Skript zum Auffinden von Dateien, die älter sind als der 1. Januar 2010

Ich bin auf der Suche nach einem Skript, das alle Dateien findet, die älter sind als der 1. Januar 2010. Das folgende funktioniert bei mir nicht -

date-of-my-file = $(date -r /my-file +%F)
if [ $date-of-my-file -nt "2010-01-01" ]
then
    echo "Yes"
else
    echo "No"
fi

Für jede Hilfe sind wir dankbar. P.S.: Der Befehl touch funktioniert auf meinem Rechner mit veraltetem Linux nicht.

21voto

davidp Punkte 226

Hier ist ein Einzeiler:

find <dir> -not -newermt 2010-01-01

Damit werden alle Dateien gefunden, die vor dem angegebenen Datum geändert wurden. Machen Sie eine Mann finden und sehen Sie sich die Optionen für -newerXY wenn Sie etwas anderes als das Änderungsdatum verwenden möchten.

1voto

RusAlex Punkte 7887

Müssen Sie die Shell-Befehle find mit der Option newer verwenden.

Es funktioniert so: Sie erstellen eine Datei mit dem Zeitstempel 1.1.2010 und vergleichen dann alle Dateien mit diesem Zeitstempel

touch -t 01010000 /tmp/timestamp<br>
find ~ -newer /tmp/timestamp

0voto

Brad Punkte 10846

Verwenden Sie einfach den Befehl "find". Es gibt mehrere Flags, mit denen Sie Dateien nach dem Zeitpunkt der letzten Änderung filtern können, z. B. -newer, -mmin und -mtime. Suchen Sie in "man find" nach weiteren Einzelheiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X