Antworten:
In neueren Versionen find
(zB GNU 4.4.0) können Sie die -newermt
Option verwenden. Zum Beispiel, um alle Dateien zu finden, die am 08.02.2011 geändert wurden
$ find /var/www/html/dir/ -type f -name "*.php" -newermt 2011-02-08 ! -newermt 2011-02-09
Beachten Sie auch, dass Sie keine Pipe in grep benötigen, um nach PHP-Dateien zu suchen, da find dies in der -name
Option für Sie tun kann .
Schauen Sie sich diese SO-Antwort an, um weitere Vorschläge zu erhalten: Wie kann man mit 'find' nach Dateien suchen, die an einem bestimmten Datum erstellt wurden?
Ärgerlicherweise gibt es keinen direkten Weg mit Standard find
. Aktuelle Versionen von find
GNU-Systemen (z. B. nicht eingebettetes Linux, Cygwin) und einige * BSDs verfügen über Optionen -newermt
zum Vergleichen eines Dateidatums mit einem Datum mit Schreibweise .
Mit standard find
können Sie lediglich das Dateidatum mit dem aktuellen Datum ( -mtime
) oder mit einer festen Datei vergleichen. Das aktuelle Datum ist in diesem Fall normalerweise nicht sinnvoll (es wird ab dem Zeitpunkt der find
Befehlsausführung zurückgezählt, wohingegen die meisten Anwendungen ein Kalenderdatum erfordern). So haben Sie die Möglichkeit, temporäre Dateien zu erstellen, um einen Bereich zu definieren.
touch -t 201103070000 start.tmp
touch -t 201103080000 stop.tmp
find . -newer start.tmp \! -newer stop.tmp -print
rm start.tmp stop.tmp
Sie haben bereits fast den richtigen Befehl, für Versionen, bei find
denen Sie keine Daten verwenden können:
find /var/www/html/dir/ -mtime 27 | grep '\.php'
Im Allgemeinen bedeutet für find
- n weniger als , n bedeutet gleich , + n bedeutet "mehr als". Traditionell find
gibt es einige Ausnahmen, aber GNU find
und andere neuere Versionen wie BSD / Mac OS X haben diese korrigiert. (Denken Sie daran, wenn Sie jemals auf einem Solaris oder einem anderen kommerziellen Unix-System arbeiten.)
Mit zsh
dieser Funktion können Sieage
nur die Namen von Dateien drucken, die an einem bestimmten Datum geändert wurden:
Autoload-Alter print -rl - * .php (.e: Alter 2011/02/08 :)
oder, wenn Sie rekursiv suchen möchten:
Autoload-Alter setopt extendedglob print -rl - ** / *. php (.e: alter 2011/02/08 :)