Script für Verzeichniserstellung nach Dateidatum

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
viper2k
Beiträge: 51
Registriert: 11.01.2006 02:49:11
Wohnort: Berlin
Kontaktdaten:

Script für Verzeichniserstellung nach Dateidatum

Beitrag von viper2k » 13.11.2006 13:15:19

Hallo,

ich möchte gerne das ein Script Verzeichnise erstellt nach dem Datum der Dateien.

Datei1 04.11.06
Datei2 20.11.06
Datei3 1.12.06


er soll nun ein Verzeichnis erstellen: November06 und die Dateien1 und 2 verschieben in das Verzeichnis.
=> das soll aber erst gemacht werden nach dem 1 Monat vorbei ist dann soll er am 1. des nächsten Monates die Verzeichnisse des Vormonats erstellen.


Kann mir da jemand helfen?

thx

Viper2k

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 13.11.2006 14:02:22

Also, um das mit dem Datum zu loesen, kannst du das Shell-Kommando date nutzen.
Diesem musst du fuer deinen Fall einen Formatstring mitgeben:

Code: Alles auswählen

date +%B%y
November06
Was dir dann noch fehlt ist, einen Monat zurueckzurechnen:

Code: Alles auswählen

date -d '1 month ago' +%B%y
October06
Bei mir kommt das ganze mit englischen Monatsnamen, weil ich meine Locales so gesetzt habe. Wenn bei dir fuer die Locales Deutsch eingestellt ist, sollte das ganze mit den deutschen Monatsnamen klappen.

Das ganze mal als kurzes Skript:

Code: Alles auswählen

#!/bin/bash
DIRNAME=$(date -d '1 month ago' +%B%y)
SRCDIR='/blafasel/dir'

# Verzeichnis anlegen, falls es nicht existiert
if [ ! -e $DIRNAME ]; then
  mkdir $DIRNAME
fi
Das ganze ungetestet und nur auf die Schnelle runtergehackt. Aber ich denke, darauf kannst du dann schon mal aufbauen. Was noch fehlt ist, dass du die korrekten Dateien findest. Falls das Datum im Namen ist, kannst du dir ein Pattern fuer die Shell bauen. Wenn das nicht der Fall ist, musst du mal mit find sehen, wie du die richtigen Dateien findest.

viper2k
Beiträge: 51
Registriert: 11.01.2006 02:49:11
Wohnort: Berlin
Kontaktdaten:

Beitrag von viper2k » 17.11.2006 12:30:16

Auf dem Rechner sieht das so aus:

/dir1 02.10.06
/dir2 04.11.06

nun soll er alle Verzeichnisse die vom Erstellungsdatum Oktober 06
in den ordner
/archiv/2006/oktober verschieben
und alle Verzeichnisse mit dem Erstellungsdatum November 06
in /archiv/2006/november
und wenn der ordner nicht existiert soll dieser erstellt werden.


usw.


Wie kann ich sowas realisieren?

Antworten