Zeigt das Jahr an, während Dateien im aktuellen Verzeichnis aufgelistet werden

58

Ich arbeite an einem Red Hat Server. Die Befehle ls -loder llgib mir das Datum und die Uhrzeit im Format +"%b %-d %H:%M".

Ich möchte die Dateien so auflisten, dass das Jahr, in dem jede Datei erstellt wurde, innerhalb des Datums erscheint.

Wie ist das möglich?

WAEL
quelle
Nein, ich glaube nicht, dass ich es mit "ls-lT" probiere, es wurde nicht gefunden
WAEL
1
ls -lTis for mac osx
Kris Roofe
1
Im Allgemeinen behält Unix die Erstellungszeiten von Dateien nicht im Auge, und selbst wenn dies der Fall ist, lshat Unix im Allgemeinen keine Möglichkeit, sie anzuzeigen. Das ist also im Allgemeinen unmöglich.
G-Man

Antworten:

86

Sie können verwenden man lsund hier finden Sie --time-styleParameter. Oder Sie können verwenden:

ls --full-time.

Jan Marek
quelle
1
@bob: Stimmen Sie vollkommen mit Turco überein. Wenn Sie das nicht tun, wird sich niemand darum kümmern, Ihre Frage zu beantworten.
The Dark Knight
5
Beispiel für Zeitstills -l --time-style=+%F
sobi3ch
1
Für diejenigen, die schon llals ls -laoder etwas anderes eingestellt haben, ll --full-timefunktioniert das auch.
Meetai.com
8

ls -lwird Monat, Tag und Jahr anzeigen - da laut BSD-Manpage: Wenn die Änderungszeit der Datei in der Vergangenheit oder Zukunft mehr als 6 Monate beträgt, wird anstelle der Stunden- und Minutenfelder das Jahr der letzten Änderung angezeigt .

Um sicherzustellen, dass das Jahr immer angezeigt wird, verwenden Sie:

ls --time-style=long-iso (GNU / Linux)

ls -lT zeigt die vollständigen Zeitinformationen in BSD (MacOS) an

Daniel Cambría
quelle
6

Da Sie nach dem Jahr gefragt haben, ls -lacist es leicht, sich daran zu erinnern, ob Sie wie ich die ls -laganze Zeit verwenden. Das cgibt Ihnen die Uhrzeit, die ein Jahr anzeigt, wenn es nicht das aktuelle Jahr ist, oder die Stunde und Minute, wenn es ist.

PhilT
quelle
Ich mag das. Viel weniger Rauschen in der Ausgabe und nur ein Buchstabe, an den Sie sich in Zukunft erinnern sollten.
Eric
1
Dies scheint das Verhalten des lsbis dato geänderten anstatt des geänderten Standarddatums zu ändern .
Mateen Ulhaq
2
ls -lZeigt Datum und Uhrzeit für Daten in den letzten sechs Monaten sowie Datum und Jahr für andere Daten an. ctime kann in den letzten sechs Monaten genau so lang sein wie mtime (Änderungsdatum), also ls -lackönnen die Zeiten (anstelle von Jahren) genau so lang sein wie ls -lamöglich. Außerdem werden, wie Mateen Ulhaq betont, ls -lacnicht die gleichen Daten angezeigt, die es auch ls -lagibt. Diese Antwort ist falsch.
G-Man
2
Wie um alles in der Welt erhielt diese "Antwort" sieben Stimmen?
G-Man
5

Zusätzlich zur Antwort von Jan Marek .... Ich habe bemerkt, dass Sie mit nur durchkommen können:

ls --full oder ls --fu

die das gleiche tun, ls --full-timewie er beschrieben hat. Danke Stéphane Chazelas. Jetzt tippe ich ls --fuüberall. :)

G_Style
quelle
1
Oder ls --fu. Lange Optionen im GNU-Stil können abgekürzt werden, solange keine Mehrdeutigkeit --fvorliegt ( würde nicht funktionieren, da es auch einen --Dateityp und ein --Format gibt). Beachten Sie, dass eine zukünftige Version möglicherweise eine einführt, --full-permssodass es gefährlich ist, sich darauf zu verlassen.
Stéphane Chazelas
1
Gut zu wissen! Es geht nur darum, weniger zu tippen. :)
G_Style
2

Wenn Sie busybox(eingebettete Distributionen, z. B. OpenWRT, LEDE) verwenden, suchen Sie nach einem Switch -efür Versionen bis 1.26.2 und --full-time1.27.0 und höher (siehe das Commit, das ihn geändert hat ).

Code Bling
quelle
1
-eFunktioniert auch mit Solaris lsund Ast-Open, ist also näher an einem Standard als GNU --full-time. Schade, dass busybox es in neueren Versionen beseitigt hat.
Stéphane Chazelas
@ StéphaneChazelas wusste das nicht! Vielen Dank für die Bearbeitung
Code Bling
-1

kann lieblings:

$ ls -altT / path / to / some / dir

象 象 嘉
quelle
Wie bereits erwähnt , -Tfunktioniert die Option nicht mit GNU ls(auch nicht in POSIX angegeben). Wenn Sie Code als Antwort bereitstellen, ist es außerdem besser zu erklären, was die einzelnen Teile bewirken.
Anthony G - Gerechtigkeit für Monica