Warum zeigt "ls -all" für einige Dateien die Zeit an, für andere jedoch nur das Jahr?

31

Wenn Sie einen ls -allBefehl ausgeben, haben einige Dateien oder Verzeichnisse das Jahr und einige die Zeit? Warum zeigen einige das Jahr, während andere die Zeit anzeigen? Ist die Zeit repräsentativ für die Zeit, zu der die Datei erstellt wurde?

Bildbeschreibung hier eingeben

Jonathan Kittell
quelle
15
Sie benutzen -all. Beachten Sie, dass das letzte L überflüssig ist, da alles nicht für das Wort "all" steht, sondern für -a(alle Dateien anzeigen) und -l(langes Listenformat). Alles in allem ls -alist es dasselbe, was Sie verwenden.
Fedorqui

Antworten:

34

Standardmäßig werden Datei-Zeitstempel in abgekürzter Form aufgeführt, wobei für nicht aktuelle Zeitstempel ein Datum wie "30. März 2002" und für aktuelle Zeitstempel ein Datum ohne Jahr und Uhrzeit wie "30. März 23:45" verwendet wird. Dieses Format kann sich je nach aktuellem Gebietsschema ändern (siehe unten).

Ein Zeitstempel wird als neu angesehen, wenn er weniger als sechs Monate alt ist und nicht in die Zukunft datiert ist. Wenn ein heute datierter Zeitstempel nicht in neuerer Form aufgeführt ist, liegt der Zeitstempel in der Zukunft. Dies bedeutet, dass Sie wahrscheinlich Probleme mit dem Zeitversatz haben, die Programme wie make, die auf Datei-Zeitstempeln basieren, beschädigen können.

Quelle: http://www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps

Um zu veranschaulichen:

$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7
Thomas Weinbrenner
quelle
4
Erwähnenswert ist, dass die zukünftigen Zeiten eher das Jahr als die Zeit anzeigen. Dies kann passieren, wenn Sie Dateien zwischen Hosts austauschen, bei denen die Uhr nicht synchron ist.
Kasperd
24

Die dargestellte Zeit ist die Änderungszeit. Bitte beachten Sie, dass dies ls -alldasselbe ist wie ls -l -a, was sich von unterscheidet ls --all. Es gibt keinen Grund, double lin Ihrem Beispiel zu verwenden. Wenn Sie die Änderungszeit für jede Datei anzeigen möchten, können Sie verwenden ls -al --full-time.

Kira
quelle
4
In GNU lsfür den normalen Gebrauch --time-style=long-isokönnte nützlicher sein. --full-timezeigt Sekunden einschließlich neun Ziffern (!) nach dem Dezimalpunkt an, was normalerweise nicht benötigt wird.
Pabouk
1
--full-timeimpliziert -l, so könnte man nur verwenden ls -a --full-time.
Kasperd
6

Wenn das Datum / die Uhrzeit, die angezeigt werden soll, in den letzten sechs Monaten liegt, lswerden Datum und Uhrzeit angezeigt. Wenn es länger als sechs Monate her ist - oder wenn es in der Zukunft liegt -, lswerden Datum und Jahr angezeigt.

Wie in den anderen Antworten angegeben,

  • ls -llist äquivalent zu ls -l, und
  • ls -allentspricht ls -al, was äquivalent ist ls -a -l, ls -l -aund ls -la.

Mit dieser -lOption wird lsdas Änderungsdatum und die Änderungszeit von Dateien (einschließlich Verzeichnissen, da "alles eine Datei ist") angezeigt, sofern nicht anders angegeben

  • -c wird ebenfalls angegeben. In diesem Fall wird die Änderungszeit oder angezeigt
  • -u wird ebenfalls angegeben. In diesem Fall wird die Zugriffszeit angezeigt.

Weitere Informationen finden Sie in ls (1) .

G-Man sagt, "Monica wiedereinsetzen"
quelle
3

Diese Ausgabe ist auf maximalen Informationsgehalt abgestimmt: Wenn die Zeit der aktuellen Zeit "nahe genug" ist (nicht ganz sicher, aber ich vermute, innerhalb von sechs Monaten), wird das Jahr gelöscht und stattdessen die Uhrzeit angezeigt. Ansonsten wird das Jahr angezeigt. Dies ist die Standardeinstellung, meistens, weil Sie sich wahrscheinlich nicht so sehr um die genaue Uhrzeit kümmern, zu der etwas geändert wurde, wenn diese Zeit vor Jahren liegt. GNU coreutils lshat die --time-styleMöglichkeit, dies explizit zu steuern.

Tom Hunt
quelle
0

Hast du etwas realisiert? Es wird nur die Uhrzeit am 20. Oktober angezeigt, also das Datum ohne Uhrzeit.

Es stellt sich heraus, dass es nicht so ist, wie Thomas geantwortet hat. Ich habe gerade versucht, die Abzugsmethode zu verwenden, ohne die Gewissheit zu haben, dass ich trotzdem eine korrekte Schlussfolgerung ziehen kann.

Rafael Campos Nunes
quelle
1
Aug 6 19:50 .config, Aug 6 19:48 VNCHOWTO.
G-Man sagt, dass Monica
Perfekt, ich habe nur einen Abzug gemacht, indem ich mir die Daten angesehen und die Punkte verbunden habe, was nicht immer ein perfekter Abschluss sein kann.
Rafael Campos Nunes