Ist es mit dem ls
Befehl möglich, nur die Dateien anzuzeigen, die nach einem bestimmten Datum, einer bestimmten Stunde ... erstellt wurden?
Ich frage es, weil ich ein Verzeichnis mit Tausenden von Dateien habe.
Ich möchte also alle Dateien sehen, die seit gestern erstellt wurden.
Ich benutze, ls -ltr
aber ich muss warten, um alle Dateien zu sehen ...
Gibt es eine Entsprechung DIRECTORY/SINCE=date
von OpenVMS?
ls
listet Dateien auf, bietet aber nicht viel Auswahlmöglichkeiten für die aufzulistenden Dateien oder das Ausgabeformat. Verwenden Sie Globbing (Shell-Platzhalter) oder,find
wenn Sie Dateien nach Namen oder Metadaten (z. B. Datum) auswählen möchten.zsh
:ls -1 -- *(.m-1)
Antworten:
Mit dem
find
Befehl können Sie alle Dateien suchen, die nach einer bestimmten Anzahl von Tagen geändert wurden.Um beispielsweise alle Dateien im aktuellen Verzeichnis zu finden, die seit gestern (vor 24 Stunden) geändert wurden, verwenden Sie:
Beachten Sie, dass Sie anstelle von Dateien suchen müssen, die vor 24 Stunden geändert wurden .
-mtime +1
-mtime -1
quelle
ls
hier zu beschränken, Luc.-mmin 5
listet Dateien auf, die in den letzten 5 Minuten geändert wurden.-newermt "2011-02-27 13:42"
listet Dateien auf, die seit dem angegebenen Datum geändert wurden. Sie können-exec ls --color -ld {} +
statt verwenden-ls
, um das übliche Farbdisplay zu erhalten (wenn Sie die farbige Ausgabe mögen).find . -mmin -5
Dies findet alle Dateien, die nach einem bestimmten Datum geändert wurden.
quelle
quelle
date
sagtJun 03
,ls
sagt aberJun 3
, so funktioniert das nicht. (2) Vor einer Woche war das Datum der 27. Mai. Es wurdenls -l | grep "May 27"
Dateien gefunden, die an diesem Tag geändert wurden, aber auch Dateien, die am 27. Mai eines anderen Jahres geändert wurden - und Dateien mit dem Zusatz „27. Mai“ im Namen. (Und wenn Sie denken , das ist eine völlig falsche Sorge, aufblicken „10. Dezember“ .) (3) Und wenn Sie bekommen es geschafft, zudate
sagenJun 2
, greppen dafür finden würdeJun 20
durchJun 29
, aber nichtJun 2
(mit zwei Räumen). … (Fortsetzung)ls -ltr
, um die zuletzt geänderten Dateien am Ende der Liste abzurufen . Wenn Sie nach einem Datum suchen, müssen Sie dies nicht tun (außer, um die Dateien für den 27. Mai 2015 am Ende der Auflistung abzurufen, nach den Dateien für den 27. Mai 2014, den 27. Mai 2013 usw.). (5) In awkprint $2, $3
ist äquivalent zuprint $2" "$3
und ist viel einfacher zu lesen - insbesondere wenn es drei andere Ebenen von Anführungszeichen gibt.ls -ltr | grep "$(date | awk '{print $2,$3}')"
Hoffe das funktioniert:
Hier:
Dieser Befehl gibt alle Dateinamen aus, die am oder nach dem 1. Mai bis 31. Mai erstellt wurden
Wenn Sie das Datum auch auf der Konsole drucken möchten, versuchen Sie dies
Wenn Sie den Pfad des Verzeichnisses angeben möchten, können Sie dies ausprobieren
quelle
ls
Ausgabe zu analysieren . Und nicht jeder spricht Englisch :-)