Wie kann ich das Alter einer bestimmten Datei in mindestens Tagen ermitteln?
Ich kenne ls -lh
sehr gut und ähnliche Befehle. Ich möchte etwas, das ungefähr so funktioniert:
getfage <FILE> # prints out '12d' (12 days)
Außerdem muss dies etwas plattformübergreifend sein, da ich dies auch gerne unter Mac OS X verwenden möchte, aber der primäre Anwendungsfall ist auf meiner Linux-Box.
HINWEIS
Da Linux die Erstellungszeit nicht verfolgt, suche ich nach einer zweifachen Lösung:eine für mtime (Linux) – das war das letzte Mal, dass diese Datei geändert wurde – und eine für Mac OS X, die entweder mit mtime umgehen kann oder Erstellungszeit.
Akzeptierte Antwort:
Unix verfolgt kein Erstellungsdatum. Die einzigen Informationen, die verfügbar sind, sind in der Regel, wann die Datei zuletzt war:
- Zugegriffen
- Geändert
- Geändert
- Zugriff – wann die Datei zuletzt gelesen wurde
- Ändern – das letzte Mal, dass die Datei geändert wurde (der Inhalt wurde geändert)
- Änderung – Zeitpunkt der letzten Änderung der Metadaten der Datei (z. B. Berechtigungen)
(Aus dieser Antwort )
Mit stat
können Sie Daten abrufen, die sich auf eine bestimmte Datei beziehen Befehl.
Beispiel
$ stat ffmpeg
File: `ffmpeg'
Size: 19579304 Blocks: 38248 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 10356770 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-11-26 10:49:09.908261694 -0500
Modify: 2013-11-02 17:05:13.357573854 -0400
Change: 2013-11-02 17:05:13.357573854 -0400
OSX und HFS
Wenn Sie OSX verwenden, ist das Dateisystem, das unter diesem Unix verwendet wird, HFS. Dies ist eines der wenigen (das mir bekannt ist), das das Erstellungsdatum im Dateisystem speichert, zusammen mit der Änderungszeit usw., ähnlich wie bei anderen Unixen.
Auszug
Ein Dateidatensatz speichert eine Vielzahl von Metadaten über die Datei, einschließlich ihrer CNID, der Größe der Datei, drei Zeitstempel (als die Datei erstellt, zuletzt geändert, zuletzt gesichert wurde), die ersten Dateierweiterungen der Daten sowie Ressourcenverzweigungen und -zeiger zu den ersten Daten- und Ressourcen-Extent-Datensätzen der Datei in der Extent Overflow-Datei. Der Dateidatensatz speichert auch zwei 16-Byte-Felder, die vom Finder verwendet werden, um Attribute über die Datei zu speichern, einschließlich Dinge wie den Erstellercode, den Typcode, das Fenster, in dem die Datei erscheinen soll, und ihre Position innerhalb des Fensters.
Zeitstempel
Zeitstempel werden immer im Dateisystem verwaltet, sodass Sie durch die jeweils angebotene Zeiterfassung eingeschränkt sind (EXT3, EXT4, XFS usw.).
Verwandte:Warum speichert InnoDB alle Datenbanken in einer Datei?Dateisysteme
Wenn Sie jemals neugierig sind, werfen Sie einen Blick auf dieses Wikipedia-Thema mit dem Titel:Vergleich von Dateisystemen. Es hat die umfangreichste Liste von Dateisystemen, die mir bekannt ist, zusammen mit einer schönen Tabelle der verschiedenen Funktionen und dem Status, ob es innerhalb eines bestimmten Dateisystems unterstützt wird oder nicht.
Referenzen
- Wie finde ich das Erstellungsdatum der Datei?
- Wie mache ich ein ls und sortiere dann die Ergebnisse nach Erstellungsdatum?
- An Sonntagen erstellte Dateien auflisten
- Erstellte Datei/Erstellungszeit abrufen?
- Warum beginnt die Unix-Zeit am 1.1.1970?