Wenn Sie einen ls -all
Befehl 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?
Wenn Sie einen ls -all
Befehl 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?
Antworten:
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
Die dargestellte Zeit ist die Änderungszeit. Bitte beachten Sie, dass dies ls -all
dasselbe ist wie ls -l -a
, was sich von unterscheidet ls --all
. Es gibt keinen Grund, double l
in Ihrem Beispiel zu verwenden. Wenn Sie die Änderungszeit für jede Datei anzeigen möchten, können Sie verwenden ls -al --full-time
.
ls
für den normalen Gebrauch --time-style=long-iso
könnte nützlicher sein. --full-time
zeigt Sekunden einschließlich neun Ziffern (!) nach dem Dezimalpunkt an, was normalerweise nicht benötigt wird.
--full-time
impliziert -l
, so könnte man nur verwenden ls -a --full-time
.
Wenn das Datum / die Uhrzeit, die angezeigt werden soll, in den letzten sechs Monaten liegt,
ls
werden Datum und Uhrzeit angezeigt. Wenn es länger als sechs Monate her ist - oder wenn es in der Zukunft liegt -, ls
werden Datum und Jahr angezeigt.
Wie in den anderen Antworten angegeben,
ls -ll
ist äquivalent zu ls -l
, undls -all
entspricht ls -al
, was äquivalent ist ls -a -l
, ls -l -a
und ls -la
.Mit dieser -l
Option wird ls
das Ä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) .
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 ls
hat die --time-style
Möglichkeit, dies explizit zu steuern.
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.
Aug 6 19:50 .config
, Aug 6 19:48 VNCHOWTO
.
-all
. Beachten Sie, dass das letzte L überflüssig ist, daall
es nicht für das Wort "all" steht, sondern für-a
(alle Dateien anzeigen) und-l
(langes Listenformat). Alles in allemls -al
ist es dasselbe, was Sie verwenden.