Seite 1 von 1

Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 11:27
von Juerg
Nach der Konvertierung von ca. 10'000 Dateien steh ich nun vor dem Problem, dass alle neuen *.odt Dateien das Datum der Ausführung der Konvertierung haben. Kann ich mithilfe eines Scripts dieses Datum wieder auf das Ursprungsdatum der entsrechenden .doc Datei setzen? Wer hilft mir?

Juerg

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 11:35
von komma4
Hallo Juerg,

welches Betriebssystem nutzt Du?

Auch unter Windows gibt es touch... http://www.cygwin.com/

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 11:54
von Juerg
komma4 hat geschrieben:Hallo Juerg,

welches Betriebssystem nutzt Du?

Auch unter Windows gibt es touch... http://www.cygwin.com/

Sorry - Ubuntu Linux 8.04.1 -

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 13:04
von komma4
man touch (Treffer auch bei Tante Google)

Erstelle ein listing der Dateien mit dem gewünschtem Datum und werfe es touch vor.

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 13:28
von Juerg
komma4 hat geschrieben:man touch (Treffer auch bei Tante Google)

Erstelle ein listing der Dateien mit dem gewünschtem Datum und werfe es touch vor.

Ok - so in der Art:

# first, find all .docs, and remove the extensions

find $1 -iname \*.doc -type f | sed 's/\.doc$//g' > /tmp/list_doc.txt

Nur finde ich den Parameter für das Datum und die Zeitausgabe nicht

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 13:43
von komma4
wie wäre es mit touch -r dokument1.doc dokument1.odt

Re: Datei-Datum nach Konvertierung

Verfasst: Di, 11.11.2008 14:04
von komma4
..etwas ausführlicher (habe gerade mal wieder ein paar Minuten):

Du brauchst eine Liste von Anweisungen, die etwa so aussehen:
touch -r /pfad/zur/quelle/dokument1.doc /pfad/zum/konvertierten/dokument1.odt

In einem ersten Schritt: im Quellverzeichnis eine Liste erstellen:
ls *.doc > referenzliste.csv

Diese in Calc einlesen, in einer Spalte davor die Pfadangaben zum Quellverzeichnis ergänzen, in einer weiteren Spalte Befehl und Option.
Damit hast Du:
SpalteA SpalteB SpalteC
touch -r /pfad/zur/quelle/ dokument1.doc

SpalteD
=Verketten( A1; " "; B1;C1; "/pfad/zum/konvertierten/"; Links(C1;Länge(C1)-3);"odt"

Die SpalteD dann mit copy&paste einer Konsole vorwerfen.

Viel Erfolg!

Re: Datei-Datum nach Konvertierung

Verfasst: Mi, 12.11.2008 12:10
von Juerg
So Leute. Für alle die das auch mal brauchen können. Hier die fast ultimative Lösung:

Code: Alles auswählen

#!/bin/bash

find . -type f -name \*.doc -print | while read line; do
  name="${line%.doc}.odt"
  touch -r "$line" "$name"
done

find . -type f -name \*.xls -print | while read line; do
  name="${line%.xls}.ods"
  touch -r "$line" "$name"
done

find . -type f -name \*.ppt -print | while read line; do
  name="${line%.ppt}.odp"
  touch -r "$line" "$name"
done
Das Problem nun - die Originaldateien liegen inzwischen nur noch auf einer externen Platte (/media/Volume). Ich sollte also zu jeder .doc die entsprechende .odt Datei finden und diese dann mit neuem Datum belegen. Die meisten Verzeichnisse wurden inzwischen neu angeordnet. Stimmen also nicht mehr mit den originalen Orten überein.