Ein Befehl zum Kopieren der Zugriffszeit von Dateien auf macOS 11.6 Big Sur

Hallo, ich suche unter macOS 11.6 nach einem Befehl, um die Zugriffszeit von der Quelldatei in die Zieldatei zu kopieren.

Die Quelldatei der Zugriffszeit darf nicht aktualisiert werden.

Antworten (3)

Noch einfacher!

touch -a -r sourcefile destinationfile

Dies ändert nur die Zugriffszeit, während mein anderes Beispiel sowohl die Zugriffs- als auch die Änderungszeit am Ziel geändert hat. Siehe man touchfür Details.

Hinweis : Unter macOS 11.6, 10.14 (und wahrscheinlich früher), wenn die berührte Datei eine Länge ungleich Null hat und sich in einem von Spotlight indizierten Ordner befindet, aktualisiert Spotlight die Zugriffszeit auf die aktuelle Zeit, kurz nachdem die Zugriffszeit festgelegt wurde. Einstellungen/Spotlight/Datenschutz können verwendet werden, um Ordner von der Spotlight-Indizierung auszuschließen.

Dieses Skript sollte den Zweck erfüllen:

#!/bin/sh
if [ $# -ne 2 ]; then
    echo "Usage: $(basename $0) source destination"
    exit 1
fi

FMT="%Y%m%d%H%M.%S"
atime=$(stat -f %Sa -t "$FMT" "$1")
if [ -n "$atime" ]; then
    touch -t "$atime" "$2"
fi

Es kopiert die Zugriffszeit mit stat und schreibt mit touch.

Sie können das Überschreiben der Änderungszeit mit der Zugriffszeit vermeiden, indem Sie die -aOption verwenden, wie in touch -a -t "$atime" "$2". Auch der Hinweis in MichaelRs anderer Antwort sollte für diese Antwort gelten.

Der Befehl

cp -p source destination

wird die Arbeit erledigen.

Aus Manpages:

-p Bewirkt, dass cp die folgenden Attribute jeder Quelldatei in der Kopie beibehält: Änderungszeit, Zugriffszeit, Datei-Flags, Dateimodus, Benutzer-ID und Gruppen-ID, wie von den Berechtigungen erlaubt. Access Control Lists (ACLs) und Extended Attributes (EAs), einschließlich Resource Forks, bleiben ebenfalls erhalten.

Dies kopiert den Inhalt der Datei (und alles andere, was es kann), nicht nur die Zugriffszeit.
Daran habe ich auch gedacht - die Frage war beim ersten Lesen unklar und eine eher ungewöhnliche Bitte! Wurde trotzdem als nützlicher Tipp bewertet.