Linux ls zeigt Sekunden nur für aktuelle Dateien an

Linux ls zeigt Sekunden nur für aktuelle Dateien an

Der Linux-Befehl coreutils ls zeigt bei Verwendung mit der Option „-l“ Zeitstempel einschließlich Stunden und Minuten für aktuelle Dateien an und zeigt stattdessen das Jahr für Dateien an, die älter als sechs Monate und neuer als jetzt sind. Ich möchte dieses Verhalten für alte und aktuelle Dateien beibehalten und möchte aktuellen Dateien Sekunden und auch Zehntelsekunden hinzufügen.

ls -l /tmp/dir/ 
total 0
-rw-r--r-- 1 user1 users 0 janv.  1  2004 foo1   <==== keep this style for 
                                                       non-recent files

-rw-r--r-- 1 user1 users 0 juin  14 12:32 foo2   <==== add seconds for 
                                                       recent files

Antwort1

Hier die Zeilen aus der Infoseite von ls:

$ info coreutils 'ls invocation'
...
If FORMAT contains two format strings separated by a newline,
the former is used for non-recent files and the latter for
recent files; if you want output columns to line up, you may
need to insert spaces in one of the two formats.
...
the following two `ls' invocations are equivalent:
     newline='
     '
     ls -l --time-style="+%b %e  %Y$newline%b %e %H:%M"
     ls -l --time-style="locale"

verwandte Informationen