Am 23.12.22 um 21:10 schrieb Dave:
> Das ist echt super, danke euch Bernd und Matthias. Jetzt habe ich was zu
> knabbern über Weihnachten :)
>
Ja, Danke .)
Habs nochmal etwas überarbeitet und kommeniert
-----8<---------
#!/bin/bash
help() {
echo "$0
Script um das Datum einer OpenDocument-Datei (*.odt|*.ods, etc) auf das
in den Meta-Daten (Eigenschaften) der Datei gespeicherte Datum
festzulegen.
OpenDocument-Datei sind gezipte Archive. In der Datei meta.xml aus dem
Archiv sind die meta-Daten enhalten, so auch das Erstell- und
Speicherdatum.
Syntax: $0 <Dateiname> [Modus]
Modus:
-g setze filedate auf Änderungsdatum Standard
-e Setze filedate auf Erstelldatum.
$1
23.12.2022 bernd obermayr
"
exit 0
}
if [ X$1 = "X" -o "X$1" = "X-h" ]; then
help
fi
if [ X$1 = "X" -o ! -f "$1" ]; then
help " Fehler: Die Datei $1 existiert nicht"
fi
## temporäres Verzeichnis erstellen
tmp1=$(mktemp -d /tmp/$(basename ${0})_XXXXXX)
## aktuellen Pfad merken
orgPath=`pwd`
file="${orgPath}/$1"
## ins temporäre Verzeichnis wechseln
pushd $tmp1
## Die Datei hier entpacken
unzip "$file"
## standard, setze filedate auf Änderungsdatum
if [ "X$2" = "X-g" -o "X$2" = "X" ]; then
cdate=$(xmlstarlet sel -t -v "//dc:date" meta.xml)
echo "$file change-date=$cdate"
touch -d $cdate "$file"
fi
## setze filedate auf Erstelldatum
if [ "X$2" = "X-e" ] ;then
cdate=$(xmlstarlet sel -t -v "//meta:creation-date" meta.xml)
echo "$file creation-date=$cdate"
touch -d $cdate "$file"
fi
## zurück ins Startverzeichnis
popd
## das tmp Verzeichnis wird nicht mehr gebraucht, also löschen
rm -rf $tmp1
-----8<---------
Ich hoffe, das hilft. Sonst frag einfach :)
--
Gruss
Bernd
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]