Änderungsdatum einer Datei ermitteln

Diskutiere mit über: Änderungsdatum einer Datei ermitteln im Mac OS X - Unix & Terminal Forum

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Hallo zusammen,

    nachdem stat auf Mac OS X ja standardmäßig nicht zur Verfügung steht, frage ich mich, wie man in einem Shellskript am einfachsten das Änderungsdatum einer Datei ermittelt.
    Mit Perl geht es ja relativ einfach, aber wie macht man das direkt in der Shell(sh, bash, zsh ...)?
     
  2. k123

    k123 MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    Registriert seit:
    21.02.2004
    Mit "ls -lT" bekommst Du das Änderungsdatum angezeigt. Ist vielleicht etwas schwer zu parsen, aber besser als nichts.
     
  3. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Ja richtig.
    Die Idee hatte ich auch schon. Die Betonung bei der Frage lag auf "einfach".

    Für die zsh gibt es, wie ich inzwischen nachgelesen habe, ein zuladbares Modul, das ein builtin als Schnittstelle zum Systemaufruf 'stat' zur Verfügung stellt.
    Sieht dann so aus:
    % stat dateiname
    device 234881044
    inode 1871730
    mode 33188
    nlink 1
    uid 501
    gid 501
    rdev 0
    size 571
    atime 1109275356
    mtime 1109275032
    ctime 1109275032
    blksize 4096
    blocks 8
    link

    Das ist doch schon mal was, oder?
    Wenn jemad noch was weiss für die anderen Shells, bitte melden!
     
  4. ratti

    ratti MacUser Mitglied

    Beiträge:
    1.515
    Zustimmungen:
    56
    Registriert seit:
    09.05.2004
    GetFileInfo im Developer-Paket. Die "-d"-Option ist sehr interessant.

    Gruß, Ratti

    P.S.: Ich nehme mal an, das Fehlen hängt damit zusammen, daß HFS+ mehr/andere Infos speichert, als stat abfragt.
     
  5. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Ah ja, Sieh' an. Das hatte ich ja ganz vergessen. Die Änderungszeit wird aber mit "-m" ausgegeben.
    Das Format der Ausgabe ist ein bisschen blöd, aber das kann/muss man parsen. Die man-Page sit übrigens in dieser Hinsicht fehlerhaft und weisst von der "usage"-Information ab.
    Könnte sein, ist aber für mich kein hinreichender Grund nicht wenigstens die Informationen herauszurücken, die 'stat' liefern kann, zumal der enstprechende Systemaufruf ja zur Verfügung steht.
    'find', 'tar' und andere Kommandos sind ja auch in der Lage z. B. die Änderungszeit abzufragen.
     
  6. ratti

    ratti MacUser Mitglied

    Beiträge:
    1.515
    Zustimmungen:
    56
    Registriert seit:
    09.05.2004
    Ich weiß - aber bei -d wird beschrieben wie man das da:

    ...ändert. :)

    Was ist die "Usage-Information"?

    Hast ja recht, aber mir war auch schon aufgefallen, daß zum Beispiel bei cp der "-a"-Switch nicht existiert, der unter Gnu das "Archiv"-kopieren zulässt - unter Beibehaltung aller Dateiattribute incl. Datum. Logisch ist das nicht, weil "SetFile" das dann doch wieder erlaubt. Entweder hat Apple sich in der Datums-Ecke verbastelt, oder es gibt einen guten Grund oberhalb meines Intelligenzniveaus. :)
     
  7. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Klappt das bei Dir?
    Das ist das, was erscheint, wenn man versucht, das Ausgabeformat so zu ändern, wie das in der man-page bei -d beschrieben ist ;-)
     
    Zuletzt bearbeitet: 25.02.2005
  8. ratti

    ratti MacUser Mitglied

    Beiträge:
    1.515
    Zustimmungen:
    56
    Registriert seit:
    09.05.2004
    Nein. Und je öfter ich in die manpage schaue, um so mehr denke ich, da ist was falsch. Das ist gar kein Formatstring für die Ausgabe. Das ist einfach ge-copy-paste-d von der manpage für "SetFile" und somit ein Dokumentationsbug.

    Interessant finde ich allerdings, daß bei...

    GetFileInfo -d"mmddyy" egal.txt


    ...keine Fehlermeldung kommt. Kein Space nach dem d. Aber auch kein Resultat. Leider ist GetFileInfo ein binary, also kein reingucken für mich.

    Tja. Also GetFileInfo parsen, perl verwenden oder endlich ein vernünftiges Problem, um C zu lernen. :)

    Gruß, Ratti
     
  9. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    /Developer/Tools/GetFileInfo -d "mmddyy" dateiname
    usage: /Developer/Tools/GetFileInfo [-a[<attrib-letter>] | -t | -c | -d | -m] <path>

    Das meinte ich mit Usage-Information. Im manual heisst es ja auch -d date und nicht -ddate.
    Dass keine Fehlermeldung kommt ist um so eigenartiger.
    Das Problem, das der Frage zugrunde liegt habe ich eigentlich schon längst gelöst.
    Es geht dabei um ein Shellskript, das lokale Verzeichnise (Entwicklung von Webseiten) auf den Server spiegelt, ohne dass ich mir Gedanken machen muß, welche Dateien ich geändert/neu angelegt/verschoben etc. habe.

    Jetzt habe ich eigentlich nur noch nach Möglichkeiten gesucht es "anders" zu machen.
    Bevor ich GetFileInfo parse, würde ich ein zsh Skript schreiben.
    Die Asugabe in "seconds from epoche" ist zum Vergleichen ja schon optimal.
    Heute würde ich aber anstelle eines Shellskriptes Perl einsetzen.
    C ist mir für so eine Sache zu "unhandlich" ;-)
     
  10. ratti

    ratti MacUser Mitglied

    Beiträge:
    1.515
    Zustimmungen:
    56
    Registriert seit:
    09.05.2004
    Da fallen mir aber noch ein paar Spezis ein. rsync, cvs, svn, weex und (wild guess: sitecopy?)

    weex geht auch ohne Shellzugriff auf dem Server.

    Gruß, Ratti
     
Die Seite wird geladen...
Ähnliche Themen - Änderungsdatum einer Datei Forum Datum
Nach anlegen einer .bash_profile Farbschema weg Mac OS X - Unix & Terminal 30.07.2016
grep von einer Webseite Mac OS X - Unix & Terminal 07.11.2014
User einer Gruppe hinzufügen (User: www in Gruppe "staff") Mac OS X - Unix & Terminal 01.07.2013
Applescript zum Starten einer Anwendung mit Startparametern Mac OS X - Unix & Terminal 10.02.2013
Shellscript. Neue Zeile am Anfang einer Log-Datei schreiben Mac OS X - Unix & Terminal 20.03.2012

Diese Seite empfehlen

Benutzerdefinierte Suche