Wie kann ich das Alter einer bestimmten Datei in mindestens Tagen ermitteln?
Ich kenne ls -lh
und ähnliche Befehle. Ich möchte etwas, das in etwa so funktioniert:
getfage <FILE> # prints out '12d' (12 days)
Auch dies muss etwas plattformübergreifend sein, da ich dies auch unter Mac OS X verwenden möchte, aber der primäre Anwendungsfall ist auf meiner Linux-Box.
HINWEIS
Da Linux die Erstellungszeit nicht protokolliert , suche ich nach einer zweifachen Lösung: eine für mtime (Linux) - das ist das letzte Mal, als die Datei geändert wurde - und eine für Mac OS X, mit der beide umgehen können mtime oder Erstellungszeit.
command-line
files
timestamps
Alexej Magura
quelle
quelle
stat
gibt dir alles was du brauchst oder?Antworten:
Unix verfolgt kein Erstellungsdatum. Die einzigen verfügbaren Informationen sind in der Regel die letzten Male, an denen die Dateien vorhanden waren:
( Aus dieser Antwort )
Mit dem
stat
Befehl können Sie Daten abrufen, die sich auf eine bestimmte Datei beziehen .Beispiel
OSX und HFS
Wenn Sie OSX verwenden, ist das Dateisystem, das unter diesem Unix verwendet wird, HFS . Dies ist eine der wenigen (die mir bekannt sind), die das Erstellungsdatum im Dateisystem zusammen mit der Änderungszeit usw. ähnlich wie bei anderen Unixen beibehält.
Auszug
Zeitstempel
Zeitstempel werden immer im Dateisystem gespeichert, sodass Sie durch die Zeitverfolgung eingeschränkt sind (EXT3, EXT4, XFS usw.).
Dateisysteme
Wenn Sie jemals neugierig sind, werfen Sie einen Blick auf dieses Wikipedia-Thema mit dem Titel: Vergleich von Dateisystemen . Es enthält die umfangreichste Liste der mir bekannten Dateisysteme sowie eine Tabelle mit den verschiedenen Funktionen und dem Status, ob sie in einem bestimmten Dateisystem unterstützt werden oder nicht.
Verweise
quelle
OSX verfolgt die Dateierstellung, die meisten anderen Unices jedoch nicht. Daher kann die seit der Dateierstellung verstrichene Zeit nicht ermittelt werden. Sie können die seit der letzten Änderung verstrichene Zeit auf nahezu jedem Betriebssystem abrufen.
Es gibt kein tragbares Shell-Dienstprogramm, mit
ls
dem die Änderungszeit einer Datei abgerufen werden kann, es sei denn, die Ausgabe ist nahezu unmöglich zu analysieren. Unter Linux gibt der folgende Befehl das Alter einer Datei aus:Unter Linux können Sie
stat -c %Y -- "$filename"
als Synonym verwendendate +%s -r "$filename"
.OSX
date
undstat
Befehle sind unterschiedlich. Sie können den folgenden Befehl verwenden:Auf nicht eingebetteten Linux-Systemen und OSX ist Perl standardmäßig installiert.
quelle
stat
ausmachen, in Linux wurde der Syscall nicht überarbeitet, so dass man auf Hacking zurückgreifen mussdebugfs
.Basierend auf der Antwort von Gilles ist hier eine Bash-Funktion, die das Alter der Datei in Sekunden oder nach einem Fehler zurückgibt.
quelle
Sie können verwendet werden
stat -f%B
,ls -lU
odermdls -n kMDItemFSCreationDate
die Schaffung (Geburt) Zeit in OS X zu sehen:quelle
suche
man stat
nach-c
(Format-) Optionenquelle