GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Alter der gegebenen Datei abrufen?

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:

  1. Zugegriffen
  2. Geändert
  3. 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?

Linux
  1. Holen Sie sich die erstellte Datei/Erstellungszeit??

  2. Holen Sie sich die Dateierstellungszeit mit Python unter Linux

  3. Befehl zum Abrufen der Zeit in Millisekunden

  4. Zeitstempel, Änderungszeit und Erstellungszeit einer Datei

  5. Dateizugriffszeit wird in Ubuntu 12.04 nicht aktualisiert

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit in Python

Nicht blockierender Get-Charakter

Holen Sie sich MP3-Länge in Linux / FreeBSD

Holen Sie sich das letzte Änderungsdatum der Datei in Linux

Echtzeit-Backup bei Dateiänderung?

Linux erhält den UTC-Offset von der aktuellen (oder anderen) Zeitzone zu einem bestimmten Datum und einer bestimmten Uhrzeit