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 eher in „Codier“ -Sprache als in Laiensprache geschrieben – könnte jemand sie so beantworten, wie es ein Laie ausführen kann?

Vielen Dank für Ihre Hilfe.

Kommentare

  • Der “ -Codierer “ Erklärung, über die andere Leute geschrieben haben, ist wahrscheinlich ein Verweis auf “ touch „. Sie ‚ Sie müssen ein Terminal öffnen, zu dem Ordner navigieren, in dem sich die Datei befindet, und dann mit dem Befehl touch das Erstellungsdatum der ‚ ändern.
  • FWIW Mit “ touch-t “ befinden Sie sich in der richtigen Zeile, aber zwischen h und – befindet sich ein Leerzeichen. Es ‚ s “ touch -t “

Antwort

touch -t ändert normalerweise nur die Änderungs- und Zugriffszeiten. Die Erstellungszeit wird nur geändert, wenn die Zielzeit vor der ursprünglichen Erstellungszeit liegt.

touch -t 199912312359 file.txt touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt 

SetFile -d ändert sich immer Die Erstellungszeit.

SetFile -d "12/31/1999 23:59:59" file.txt SetFile -d "$(GetFileInfo -m test.txt)" file.txt 

SetFile ist Teil des Befehlszeilen-Tools-Pakets, das vom Entwickler heruntergeladen werden kann .apple.com / downloads oder aus den Einstellungen von Xcode.

Kommentare

  • -m zum Ändern der Änderungszeit.
  • In Yosemite musste ich für touch das Format +%Y%m%d%H%M.%S verwenden (beachten Sie den Punkt zwischen Minuten und Sekunden).
  • Ich habe eine Funktion namens CpCreationDate in fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Antwort

In Mac OS X scheinen einer Datei vier verschiedene Zeitstempel zugeordnet zu sein. Diese Zeitstempel werden nicht immer unabhängig voneinander aktualisiert, aber man kann einige Individuen haben Kontrolle mit ein wenig Sorgfalt und unter Verwendung von touch, SetFile und chown (oder chmod). Um dies zu sehen, experimentieren wir und erstellen eine neue Datei an der Eingabeaufforderung #:

# touch a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt 

Die Das erste aufgeführte Datum ist die letzte Zugriffszeit (atime), das zweite ist die letzte Änderungszeit (mtime), das dritte ist die letzte Statusänderung ( ctime), der vierte ist der Zeitpunkt der Dateierstellung (Geburt, Btime), siehe man lstat.

So ändern Sie die Zugriffszeit (atime) auf eine bestimmte Zeit:

# touch -a -t201412312359.59 a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt 

Ändern der Änderungszeit (mtime) und der Dateierstellung (Btime) auf eine bestimmte Zeit Verwenden Sie:

# touch -m -t201312312359.59 a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt 

Anscheinend wird dadurch auch automatisch der Zeitpunkt der letzten Statusänderung (ctime) auf aktualisiert Die aktuelle Systemzeit!

Um nur den Zeitpunkt der Erstellung / Geburt (Btime) auf eine bestimmte Zeit zu ändern, verwenden Sie (als pr von anderen oben gestellt):

# SetFile -d "12/31/1999 23:59:59" a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt 

Um nur den Zeitpunkt der letzten Statusänderung (ctime) zu ändern Aktuelle Systemzeitverwendung zum Beispiel:

# chown username a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt 

wobei username der Eigentümer der Datei ist (wie von stat oder ls -l). Dies ändert nicht den Besitz der Datei, sondern greift auf den Inode der Datei zu und zeichnet dies als Zeitpunkt der letzten Statusänderung auf. Leider ist es hier nicht möglich, die Zeit explizit anzugeben, außer durch Ändern der Zeit des Computers …

Zusammenfassend kann man (in diesem Fall) die vier Zeitstempel unabhängig voneinander ändern Reihenfolge für die letzten 3):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [Systemdatum festlegen] chown username <file> [zum normalen Systemdatum zurückkehren]

(Natürlich ist das Zurücksetzen des Systemdatums möglicherweise kein risikofreier Vorgang. Sie wurden gewarnt.)

Kommentare

  • +1 Vielen Dank für diese super detaillierte Antwort. Dies hat alle meine Probleme gelöst.
  • Manchmal habe ich Fotos mit falschen Daten, weil sich meine GoPro selbst zurücksetzt. Ich übertrage diese Fotos auf meinen Mac und lege das Datum gemäß diesen Anweisungen fest. Wenn ich diese Fotos jedoch auf mein iPhone übertrage, ist das Datum immer noch falsch. Die einzige Möglichkeit, ‚ zu beheben, besteht darin, dies mit einem iOS EXIF-Editor zu beheben. Gibt es irgendwo noch ein verstecktes Datumsattribut?
  • @Bowen: Die Daten, auf die Sie sich in einem Foto beziehen, sind Teil der Daten des Fotodateiformats. Das Erstellungsdatum, das Änderungsdatum usw. der oben genannten Dateien werden vom Dateisystem Ihres Betriebssystems verwaltet. Sie werden separat zu den in der Datei enthaltenen Daten verwaltet und aktualisiert.

Antwort

Der Befehlszeilenbefehl touch funktioniert in Lion, Sie benötigen jedoch einige Hintergrundinformationen Verwenden Sie es.

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 Dienstprogrammordner oder verwenden die Spotlight-Suche, um es zu finden.

Sobald Sie es starten, wird ein Befehlszeilenfenster angezeigt, in das Sie Befehle eingeben können. Nur weil Sie tippen, funktioniert dies nicht. “ Das bedeutet nicht, dass es irgendetwas mit Codierung zu tun hat, aber für jemanden, der neu in „altmodischen“ Betriebssystembefehlen ist, kann es ein wenig einschüchternd aussehen.

Der Befehl heißt also touch , und nach dem Befehl können Sie verschiedene Parameter übergeben, den einzigen erforderlichen der Dateiname sein. Wenn Sie Folgendes eingeben, wird das Datum der letzten Änderung der Datei auf die aktuelle Uhrzeit gesetzt:

touch filename 

Natürlich müssen Sie möglicherweise zuerst die Datei suchen benötigen weitere Befehle, um dorthin zu gelangen. Hier hilft der Befehl cd oder Verzeichnis ändern :

cd ~/Desktop/files/PDFs touch filename 

Oder Sie können einfach den vollständigen Wert hinzufügen Pfad zur Datei als Teil des Befehls:

touch ~/Desktop/files/PDFs/filename 

Bei einer erweiterten Verwendung des Befehls touch können Sie die Zeit angeben, die Sie festlegen möchten, anstatt sie zu verwenden Legen Sie die Zugriffszeit anstelle der Änderungszeiten usw. fest. Dies tun Parameter wie -t und andere. Einige legen die Zeit als Zeit für eine andere Datei fest, andere als Zeit für die X-Menge ( siehe hier für weitere Details). Beispiel:

touch -d "1 May 2005 10:22" file8 

Das Folgende ist von dieser Seite Nützliche Referenz und ein gutes Beispiel mit einigen Tipps für diejenigen, die mit Dateispeicherorten in der Befehlszeile nicht vertraut sind.

Beachten Sie, dass dadurch sowohl die Attribute für das Änderungsdatum als auch das Erstellungsdatum geändert werden, wenn Ihre Datei nach dem erstellt wurde Datum, das Sie eingeben. 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.

Wie ändere ich das Attribut für das Erstellungsdatum einer Datei?

  1. Öffnen Sie die Terminal-Anwendung (/Applications/Utilities/Terminal.app) oder verwenden Sie iTerm, wenn Sie es vorziehen.

  2. Geben Sie ein dies in Terminal (ohne Enter / Return zu drücken) Einfügen des Datums im Format YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Öffnen Sie ein Finder-Fenster und suchen Sie die Datei, die Sie ändern möchten. Ziehen Sie sie per Drag & Drop in das Terminal-Fenster. Anschließend wird der Speicherort der Datei mithilfe der Befehlszeilenterminologie eingefügt. Hier ist ein Beispiel dafür, was an dieser Stelle in das Terminal eingegeben werden sollte:

    touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg 

    201212211111 im obigen Beispiel steht für „21. Dezember 2012, 11:11 Uhr“ / p>

Kommentare

  • Aber touch ändert das Änderungsdatum und nicht das Erstellungsdatum der Datei.
  • Es kann beides. Hängt von den Parametern ab.
  • Die Verwendung von touch mit den oben angegebenen Parametern hat die Änderung geändert, jedoch nicht die Erstellungsdaten für meine Testdatei.
  • @Daniel Sie haben wahrscheinlich Ihre Antwort erhalten, aber der Vollständigkeit halber touch tut das Erstellungsdatum abhängig von den Argumenten. Wenn Sie ein Änderungsdatum angeben, 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 ihrer Erstellung nicht geändert werden kann .
  • Ich habe dies gerade in Sierra versucht und berühre definitiv ändert das creation -Datum nicht. Ich konnte das Datum access und modified in ein “ Datum in der Vergangenheit „, das Erstellungsdatum wurde jedoch nicht geändert. Überprüfen Sie die Manpage auf Berührung. Das Erstellungsdatum wird nicht angegeben. Dateisystem: Mac OS Extended (Journaled, Encrypted). Die Verwendung von SetFile -d "$(GetFileInfo -m test.txt)" file.txt hat einwandfrei funktioniert.

Antwort

Hier gibt es großartige Hinweise , insbesondere der letzte (von Lauri Ranta, antwortete am 21. August um 15:21 Uhr). Perfekt!

Ich verwende jetzt einen einfachen Automator-Workflow, um mehrere Dateien stapelweise zu ändern:

  1. Ausgewählte Finder-Elemente abrufen
  2. Shell-Skript ausführen, Eingabe übergeben : als Argumente „

Das Shell-Skript lautet:

for f in "$@" do SetFile -d "$(GetFileInfo -m "$f")" "$f" done 

Dies funktioniert wie ein Zauber.

Antwort

Der einfachste Weg, den ich gefunden habe, bestand darin, einen neuen Ordner zu erstellen und alle Unterordner des ausgegrauten Ordners zu kopieren In den neuen Ordner und voila wird der neue Ordner nicht ausgegraut. Sie können dies sogar im Finder tun.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.