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]

Antwort per Email an