Datei in Verzeichnis?

X

xeeen

Mitglied
Hi,

ich bräuchte Hilfe bei der Konzeption eines Scripts, da ich mich bisher leider noch nicht sehr viel mit ShellScripting auseinandersetzen konnte.

Das Script soll überprüfen, ob eine Datei in einem Verzeichnis vorhanden ist.
Das Verzeichnis trägt den Namen des letzten Tages eines vergangenen Monats.

Bsp. 2006_12_31, 2007_01_30

Das Script soll monatlich, beispielsweise am 1. und 2. des neuen Monats, ausgeführt werden, und jeweils im letzten Verz. des Vormonats schauen, ob die Datei vorhanden ist- falls ja, erfolgt eine entsprechende Reaktion, nämlich ein anderes Script.

Ich könnte also mit find arbeiten.
Nur wie kann ich das mit der "dynamischen" Verzeichnis-Benennung bewerkstelligen?

find /verzeichnis/$dyn_verzeichnis/datei
und dann halt nach dem Motto if exist, rufe ein Script auf.

für das $dyn_verzeichnis müsste ich irgendwie date verarbeiten?

Ideen?
Danke!
 
Hallo
Welches OS, und welche Shell?
GNU date kann auch ein spezielles datum angeben.
Z.B. von vor zwei Tagen
Code:
$ date -d"2 days ago" +"%Y_%m_%d"
2007_09_04
Ich denke damit kannst du was anfangen (wenn du GNU date hast).


Wenn nicht wird es etwas komplizierter und ich würde die Variable dann mit perl erzeugen.

Gruß Wolfgang
 
Nein, das trifft es nicht ganz.

Die Verzeichnisse werden vom System, bzw. einem anderen Script automatisch erstellt. Jeden Tag ein Verzeichnis mit diversen Dateien und eben im Format YYYY_MM_DD.

Mein Script soll im jeweils letzen im Monat erstellten Verzeichnis nach einer speziell bezeichneten Datei suchen. Sei das nun der 30. oder 31. des Monats 8, 9, oder 10. Völlig egal, da es ohnehin jeden Monat ausgeführt werden soll. Und zwar soll es jeweils in den ersten 3 Tagen eines neuen Monats "überprüfen" ob die besage Datei (im zuletzt erstellten Verzeichnis des vergangenen Monats) vorhanden ist...

Das Script muss also wissen, welcher der letzte Tag des Monats war. 30. oder 31. Und dann noch den Monat.

Kann sich jemand vorstellen, was ich brauche?
 
dann wird es wie Wolfgang schon sagte, etwas komplizierter
ich würde dir an deiner stelle auch zu perl raten, da gibt es verschiedene date module, mit denen sowas sicher recht flott geht
 
Hallo
Du hast meine Frage nach dem OS und verwendeter date-Version nicht beantwortet!

Mit GNU date ist es sehr einfach:
Code:
$ date -d"$(date +%Y)-$(date +%m)-01 1 day ago" +%Y_%m_%d
2007_08_31

Das ermittelt immer den letzten Tag im Monat.


Viel Spaß beim weitern Basteln und Nachschlagen deiner Manpage zu deiner Version von date. ;)

Gruß Wolfgang
 
Wie kann ich denn von
Code:
$ date +%m
$ 09

eins abziehen? Also aktueller Monat minus 1?
 
Wie kann ich denn von
Code:

$ date +%m
$ 09

eins abziehen? Also aktueller Monat minus 1?

Ist nicht wahr, oder?

Du hast meine Frage nach dem OS und verwendeter date-Version nicht beantwortet!

Wie oft muss man dir das eigentlich sagen?

Dein Verhalten ist es eine Unverschämtheit gegenüber jedem, der in diesem Board Hilfe-Stellung gibt.
 

Ähnliche Themen

Inhalte in einer Datei suchen und Dateiname ausgeben

Zurück
Oben