finde alle Dateien aus dem Jahr 2012

stefkey

Member
Hallo,

weiß jemand ausm Hut wie man in der Konsole alle Dateien mit find auflistet die im Jahr 2012 erstellt wurden, oder das Modifizierungsdatum wenn das einfacher ist.

Mit zB.
Code:
find .  -type f -mtime -365 -exec ls -alt {} \;

bekomm ich ja nicht das was ich will, mtime ist vlt die falsche Option.
 
Wenn ich mich jetzt richtig erinnere, findet -mtime n*24 Stunden. Bei -n alles was jünger als n ist und +n, alles was älter ist. Kann sein, dass ich jetzt auch voll daneben liege. Es wäre recht unsinig, da du dann auch Dateien zB. aus dem Jahr 2012 finden würdest. Mit grep wirst du Probleme bekommen, wenn sich die Zeichenfolge 2013 im Pfad befindet.
 
-mtime zeigt dir die Files an, die geändert wurden. -mtime -365 die Files, die in weniger als 365 Tagen geändert wurden.

Besser wäre -mtime +365

Um alle Files zu finden, die ein Jahr alt sind, erstellst Du ein Referenzfile und verwendest bei find -newer
 
EDIT:
Hab den Codeschnispel noch in der Zwischenablage gehabt:

Code:
import os
import datetime
for root, dirs, files in os.walk('.'):
    for file in files: #wir wollen die Dateien
        if datetime.datetime.fromtimestamp(os.stat(os.path.join(root, file))[8]).year == 2012:
            print os.path.join(root, file)


Hatte das gestern schon geschrieben, aber es scheint in /dev/null gelandet zu sein. Ich finde es etwas "overkill", aber da weiß ich wenigstens ohne lang nachzudenken ob das funktioniert oder nicht. Ich hatte gestern länger mit Find rumprobiert und manpages gelesen als den rudimentären Code in Python dafür zu schreiben.
 
Last edited by a moderator:
Back
Top