Können Sie mir bitte mitteilen, wie ich das Erstellungsdatum einer Datei in Lion ändern kann? Mir ist klar, dass es den Befehl touch-t gibt, aber das funktioniert in Lion nicht. Ein paar Leute haben einen anderen Weg erwähnt, aber ich denke, sie haben die Lösung in einer "Kodierer" -Sprache geschrieben, anstatt in einer Laiensprache. Wäre jemand in der Lage, sie so zu beantworten, wie es ein Laie ausführen kann?
Vielen Dank für deine Hilfe.
Antworten:
touch -t
Normalerweise werden nur die Änderungs- und Zugriffszeiten geändert. Die Erstellungszeit wird nur geändert, wenn die Zielzeit vor der ursprünglichen Erstellungszeit liegt.SetFile -d
Ändert immer die Erstellungszeit.SetFile ist Teil des Befehlszeilen-Tools-Pakets, das unter developer.apple.com/downloads oder in den Xcode- Einstellungen heruntergeladen werden kann .
quelle
+%Y%m%d%H%M.%S
(zwischen Minuten und Sekunden) verwendenCpCreationDate
infish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
In Mac OS X scheint es vier verschiedene Zeitstempel zu geben, die einer Datei zugeordnet sind. Diese Zeitstempel sind nicht immer unabhängig voneinander aktualisiert, aber man kann einige individuelle Steuerung mit einem wenig Sorgfalt hat und mit der Verwendung von
touch
,SetFile
undchown
(oderchmod
). Um dies zu sehen, experimentieren wir und erstellen eine neue Datei an der Eingabeaufforderung#
:Das erste Datum ist die letzte Zugriffszeit (
atime
), das zweite die letzte Änderungszeit (mtime
), das dritte die letzte Statusänderung (ctime
) und das vierte die Zeit der Dateierstellung (Geburt,Btime
)man lstat
.So ändern Sie die Zugriffszeit (
atime
) auf eine bestimmte Zeit:So ändern Sie die Änderungszeit (
mtime
) und die Zeit der Dateierstellung (Btime
) auf eine bestimmte Zeit:Anscheinend aktualisiert dies auch automatisch die Zeit der letzten Statusänderung (
ctime
) auf die aktuelle Systemzeit!Um nur den Zeitpunkt der Erstellung / Geburt (
Btime
) auf einen bestimmten Zeitpunkt zu ändern , verwenden Sie (wie oben von anderen vorgeschlagen):Um nur den Zeitpunkt der letzten Statusänderung (
ctime
) auf die aktuelle Systemzeit zu ändern, verwenden Sie zum Beispiel:wo
username
ist der Besitzer der Datei (wie vonstat
oder gemeldetls -l
). Dies ändert nicht den Besitz der Datei, greift jedoch auf den Inode der Datei zu und zeichnet diesen als Zeitpunkt der letzten Statusänderung auf. Leider ist es nicht möglich, die Uhrzeit hier explizit anzugeben, außer durch Ändern der Uhrzeit des Computers ...Zusammenfassend kann man (in dieser Reihenfolge für die letzten 3) Folgendes verwenden, um die vier Zeitstempel unabhängig voneinander ändern zu können:
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[zum normalen Systemdatum zurückkehren](Natürlich ist das Zurücksetzen des Systemdatums möglicherweise kein risikofreier Vorgang, wie Sie gewarnt wurden.)
quelle
Der Befehlszeilenbefehl
touch
funktioniert in Lion, Sie benötigen jedoch einige Hintergrundinformationen zur Verwendung.Erstens müssen Sie es eingeben, es ist kein Dienstprogramm, das grafisch in einem Fenster ausgeführt wird. Der Ort, an dem Sie es eingeben, ist eine App namens Terminal . Sie finden dies in Ihrem Ordner "Dienstprogramme" oder verwenden Sie die Spotlight-Suche, um es zu finden.
Sobald Sie es starten, erhalten Sie ein Befehlszeilenfenster, in dem Sie Befehle eingeben können. Nur weil Sie tippen, heißt das nicht, dass es etwas mit Codierung zu tun hat, aber für jemanden, der mit "altmodischen" Betriebssystembefehlen neu ist, kann es ein wenig einschüchternd aussehen.
Der Befehl heißt also touch , und nach dem Befehl können Sie verschiedene Parameter übergeben. Der einzige erforderliche Parameter ist der Dateiname. Wenn Sie Folgendes eingeben, wird das Datum der letzten Änderung der Datei auf die aktuelle Uhrzeit gesetzt:
Natürlich müssen Sie möglicherweise zuerst die Datei suchen, wofür möglicherweise weitere Befehle erforderlich sind. die cd oder Change Directory - Befehl hilft hier:
Sie können auch einfach den vollständigen Pfad zur Datei als Teil des Befehls hinzufügen:
Durch eine erweiterte Verwendung des Touch-Befehls können Sie die Zeit festlegen, die Sie festlegen möchten, anstatt die Ausführungszeit zu verwenden. Sie können den Zugriff anstelle von Änderungszeiten festlegen. Dies ist das, was Parameter wie -t und andere tun. Einige stellen die Zeit auf die Zeit einer anderen Datei ein, andere auf die Zeit vorwärts oder rückwärts um den X-Betrag ( siehe hier für weitere Details), zB:
Das Folgende ist von dieser Seite, die auch eine nützliche Referenz ist, und ein großartiges Beispiel mit einigen Tipps für diejenigen, die mit Dateispeicherorten in der Befehlszeile nicht vertraut sind
Beachten Sie, dass dies sowohl das Änderungsdatum als auch das Erstellungsdatum nur dann ändert, wenn Ihre Datei nach dem von Ihnen eingegebenen Datum erstellt wurde. Dies liegt daran, dass eine Datei nicht geändert werden kann, bevor sie erstellt wurde. Wenn es vor dem von Ihnen festgelegten Datum erstellt wurde, wird nur das Änderungsdatum geändert.
quelle
touch
ändert das Änderungsdatum nicht das Erstellungsdatum der Datei.touch
die Verwendung der oben angegebenen Parameter wurden die Änderungen, jedoch nicht die Erstellungsdaten für meine Testdatei geändert.touch
wird das Erstellungsdatum in Abhängigkeit von den Argumenten geändert . Wenn Sie ein Änderungsdatum eingeben, das vor dem Erstellungsdatum der Datei liegt, wird das Erstellungsdatum automatisch auf den neuen Wert für das Änderungsdatum geändert, da eine Datei vor dem Erstellen nicht geändert werden kann.creation
Datum. Ich konnte Datumaccess
undmodified
Datum auf ein "Datum in der Vergangenheit" ändern, aber das Erstellungsdatum wurde nicht geändert . Überprüfen Sie die Manpage auf Berührungen. Das Erstellungsdatum wird nicht erwähnt. Dateisystem: Mac OS Extended (Journaled, Encrypted). Die BenutzungSetFile -d "$(GetFileInfo -m test.txt)" file.txt
hat einwandfrei funktioniert.Hier gibt es tolle Tipps, insbesondere den letzten (von Lauri Ranta, antwortete am 21. August um 15:21 Uhr). Perfekt!
Ich verwende jetzt einen einfachen Automator-Workflow, um mehrere Dateien im Batch zu ändern:
Das Shell-Skript lautet:
Das wirkt wie ein Zauber.
quelle
Der einfachste Weg, den ich gefunden habe, war, einen neuen Ordner zu erstellen, alle Unterordner des ausgegrauten Ordners in den neuen Ordner zu kopieren und voila, der neue Ordner ist nicht ausgegraut. Sie können dies sogar im Finder tun.
quelle