Wenn die Datei-änderungsdatum älter als N Tage
Diese Frage bezieht sich auf Maßnahmen, wenn eine Datei hat ein änderungsdatum älter als so und so vielen Tagen. Ich bin sicher, es wäre ähnlich wie die für das ERSTELLUNGSDATUM oder Zugriffsdatum, aber für das änderungsdatum, wenn ich:
file=path-name-to-some-file
N=100 # for example, N is number of days
Wie würde ich das tun:
if file modification time is older than N days
then
fi
- bash selbst nicht die Werkzeuge, die Sie brauchen -- man benötigt zusätzlich Komponenten (wie
stat
oderfind
) zur Verfügung gestellt, die von Ihrem Betriebssystem. Bitte aktualisieren Sie diese Frage tag in einem bestimmten OS, um anzuzeigen, dass es akzeptabel ist, für eine Antwort auf Arbeit nur auf GNU-Systemen, oder um anzugeben, dass Sie brauchen, um kompatibel zu sein mit allen POSIX-Plattformen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehrere Ansätze zur Verfügung. Ist halt die Frage
find
für das filtern für Sie:Anderen ist die Verwendung von GNU date installiert ist, um die Mathematik zu tun:
Wenn Sie GNU-stat, können Sie ein Datei-Zeitstempel in Sekunden-seit-Epoche, und einige der Mathematik selbst (obwohl dies möglicherweise ein bisschen off an der Grenze zu Fällen, da es die Sekunden zu zählen-und nicht unter Berücksichtigung von schalttagen und solche-und nicht die Rundung am Anfang eines Tages):
Weitere option, wenn Sie brauchen, um die Unterstützung von nicht-GNU-Plattformen, ist zu berappen, um von Perl (das überlasse ich es anderen zu zeigen).
Wenn Sie interessiert sind, mehr in der Regel immer von Zeitstempel-Informationen aus den Dateien und der Portabilität und Robustheit Einschränkungen umliegenden gleiche, siehe auch BashFAQ #87.
<!-- comment here -->
syntax); indem es in großen Fett drucken in der post selbst kann als Verunstaltung, und ist wahrscheinlich der Grund, warum der erste Vorschlag wurde abgelehnt.#!/bin/bash
ist ein Programm, das angibt, dass ein Skript ausgeführt werden mit der bash, in der Erwägung, dass#!/bin/sh
lässt es laufen, mit jedem POSIX-sh-interpreter (die möglicherweise nicht die Unterstützung von bash-Erweiterungen).find
). Im Allgemeinen halte ich blind umleiten von stderr zu/dev/null
Kunstfehler (und in der-und-der-selbst in der Begründung für die fehlerhaften code-review) nur wie FangException
in Python oder Java.