Afficher l'année en listant les fichiers dans le répertoire en cours


58

Je travaille sur un serveur Red Hat. Les commandes ls -lou llme donnant la date et l'heure au format +"%b %-d %H:%M".

Je souhaite répertorier les fichiers de manière à ce que l'année de création de chaque fichier apparaisse dans la date.

Comment est-ce possible?


Non, je ne pense pas que j'essaie "ls-lT", ce n'est pas trouvé
WAEL

1
ls -lTest pour mac osx
Kris Roofe

1
En général, Unix ne garde pas trace des heures de création des fichiers et, même quand c'est le cas, lsne dispose généralement d'aucun moyen de l'afficher. Donc, en général, c'est impossible.
G-Man dit 'Réintégrez Monica' le

Réponses:


86

Vous pouvez utiliser man lset ici vous pouvez trouver le --time-styleparamètre. Ou vous pouvez utiliser:

ls --full-time.


1
@bob: complètement d'accord avec Turco. Si vous ne le faites pas, personne ne se souciera de répondre à votre question.
Le chevalier noir

5
Exemple de style temporells -l --time-style=+%F
sobi3ch le

1
Pour ceux qui ont déjà lldéfini comme ls -laou quelque chose d'autre, ll --full-timeégalement travailler.
Meetai.com

8

ls -laffichera mois jour et année - depuis , selon la page de manuel BSD: Si l’heure de modification du fichier est supérieure à 6 mois dans le passé ou le futur, l’ année de la dernière modification est affichée à la place des champs heure et minute .

Donc, pour être sûr que cette année sera toujours affichée, utilisez:

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

ls -lT affichera des informations complètes sur l'heure dans BSD (MacOS)


6

Depuis que vous avez demandé l'année, il ls -lacest facile de se rappeler si, comme moi, vous utilisez ls -latout le temps. Le cvous donne ctime qui affichera une année si ce n'est pas l'année en cours ou l'heure et la minute si c'est.


J'aime ça. Beaucoup moins de bruit dans la sortie et une seule lettre à retenir dans le futur.
Eric

1
Cela semble changer le comportement de lsla date a changé au lieu de la valeur par défaut la date de modification .
Mateen Ulhaq

2
ls -laffiche la date et l'heure pour les dates des six derniers mois et la date et l'année pour les autres dates. ctime peut être au cours des six derniers mois autant que mtime (date de modification) peut, ainsi ls -lacpeut afficher les heures (au lieu d'années) tout autant que ls -lapossible. Par ailleurs, comme le souligne Mateen Ulhaq, ls -lacn'affiche pas les mêmes dates ls -la. Cette réponse est fausse.
G-Man dit 'Réintégrez Monica' le

2
Comment dans le monde cette "réponse" a-t-elle obtenu sept voix?
G-Man dit 'Réintégrez Monica' le

5

En plus de la réponse de Jan Marek ... j'ai remarqué que vous pouvez vous en tirer avec:

ls --full ou ls --fu

qui fera la même chose que ls --full-timece qu'il a décrit. Merci Stéphane Chazelas. Maintenant, je tape ls --fupartout. :)


1
Ou ls --fu. Les options longues de style GNU peuvent être abrégées tant qu'il n'y a pas d'ambiguïté ( --fcela ne fonctionnerait pas car il y a aussi un --file-type et un --format). Notez qu'une future version peut introduire un --full-permsil est donc dangereux de s'appuyer sur cela.
Stéphane Chazelas

1
Bon de savoir! Il s'agit de taper moins. :)
G_Style

2

Si vous utilisez busybox(distributions intégrées, par exemple OpenWRT, LEDE), le commutateur que vous recherchez -econcerne les versions jusqu’à 1.26.2 et les --full-timeversions 1.27.0 et supérieures (voir la validation qui l’a modifié ).


1
-efonctionne également avec Solaris lset ast-open, il est donc plus proche d'une norme que GNU --full-time. Dommage que busybox l'ait supprimé dans les versions les plus récentes.
Stéphane Chazelas le

@ StéphaneChazelas ne le savait pas! Merci pour la modification
Code Bling

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.