Mostra l'anno mentre elenchi i file nella directory corrente


58

Sto lavorando su un server Red Hat. I comandi ls -lo lldandomi la data e l'ora nel formato +"%b %-d %H:%M".

Voglio elencare i file in modo tale che l'anno in cui ogni file è stato creato sia visualizzato entro la data.

Come è possibile?


no non credo di provare "ls -lT" non è stato trovato
WAEL

1
ls -lTè per mac osx
Kris Roofe,

1
In generale, Unix non tiene traccia dei tempi di creazione dei file e, anche quando lo fa, in lsgenere non ha modo di visualizzarli. Quindi, in generale, questo è impossibile.
G-Man dice "Ripristina Monica" il

Risposte:


86

Puoi usare man lse qui puoi trovare il --time-styleparametro. Oppure puoi usare:

ls --full-time.


1
@bob: completamente d'accordo con Turco. Se non lo fai, nessuno si preoccuperà di rispondere alla tua domanda.
The Dark Knight,

5
Esempio di stile temporalels -l --time-style=+%F
sobi3ch,

1
Per coloro che hanno già llimpostato come ls -lao qualcos'altro, ll --full-timeanche lavorare.
Meetai.com,

8

ls -lvisualizzerà giorno mese e anno - dal momento che , in base alla pagina man BSD: se la data di modifica del file è più di 6 mesi nel passato o nel futuro, allora l' anno dell'ultima modifica viene visualizzato al posto dei campi ora e minuti .

Quindi, per assicurarti che quell'anno sia sempre mostrato, usa:

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

ls -lT visualizzerà visualizzare le informazioni sull'ora completa in BSD (MacOS)


6

Dal momento che hai chiesto l'anno, ls -lacè facile ricordare se, come me, usi ls -lasempre. Il cti dà ctime che visualizzerà un anno, se non è l'anno in corso o l'ora e il minuto se lo è.


Mi piace questo. Molto meno rumore nell'output e solo una lettera da ricordare in futuro.
Eric

1
Questo sembra cambiare il comportamento di lsper data cambiato , piuttosto che il default data di modifica .
Mateen Ulhaq,

2
ls -lvisualizza la data e l'ora per le date degli ultimi sei mesi e la data e l'anno per le altre date. ctime può essere negli ultimi sei mesi tanto quanto mtime (data di modifica), quindi ls -lacpuò visualizzare i tempi (anziché anni) il più ls -lapossibile. Inoltre, come sottolinea Mateen Ulhaq, ls -lacnon vengono visualizzate le stesse date ls -la. Questa risposta è sbagliata
G-Man dice "Ripristina Monica" il

2
In che modo questa "risposta" ha ottenuto sette voti?
G-Man dice "Ripristina Monica" il

5

Oltre alla risposta di Jan Marek .... Ho notato che puoi cavartela solo con:

ls --full o ls --fu

che farà la stessa cosa ls --full-timeche ha descritto. Grazie Stéphane Chazelas. Adesso scrivo ls --fuovunque. :)


1
Or ls --fu. Le opzioni lunghe in stile GNU possono essere abbreviate purché non vi siano ambiguità ( --fnon funzionerebbero in quanto vi sono anche --file-type e --format). Si noti che una versione futura potrebbe introdurre un --full-permsquindi è pericoloso fare affidamento su quello.
Stéphane Chazelas,

1
Ottimo a sapersi! Si tratta di digitare meno. :)
G_Style,

2

Se stai utilizzando busybox(distribuzioni integrate, ad esempio OpenWRT, LEDE), lo switch che stai cercando è -eper le versioni fino alla 1.26.2 e --full-timeper la 1.27.0 e successive (vedi il commit che l'ha modificata ).


1
-efunziona anche con Solaris lse ast-open, quindi in realtà è più vicino a uno standard di GNU --full-time. Un vero peccato che busybox lo abbia rimosso nelle versioni più recenti.
Stéphane Chazelas,

@ StéphaneChazelas non lo sapeva! Grazie per la modifica
Codice Bling

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.