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?


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.


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


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.


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. :)


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 ).


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.