Comment limiter la sortie de ls pour n'afficher que le nom de fichier, la date et la taille?

25

Comment puis-je utiliser lssous linux pour obtenir une liste des noms de fichiers date et taille uniquement? Je n'ai pas besoin de voir les autres informations telles que le propriétaire, la permission.

Auriculaire
la source
de quel Linux parlons-nous?
tolitius
serveur apache ..

Réponses:

26

ls -l | awk '{print $5, $6, $7, $9}'

Cela imprimera la taille du fichier en octets, mois, date et nom de fichier.

jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 bar
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 baz
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 quux

jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux
Jin
la source
@Sosukudo Ouais, je ne suis pas sûr non plus. Mais les gens semblent convenir qu'il est bon de voter contre les mauvaises questions mais pas les réponses si elles sont utiles. meta.stackexchange.com/questions/98197/…
Jin
@Sosukodo: ne hésitez pas à upvote maintenant :)
sehe
6
pas de prise en charge des noms de fichiers avec plusieurs espaces
meso_2600
12

Techniquement, ce n'est pas possible avec ls, mais findon peut faire le même travail avec son -printfswitch:

find -maxdepth 1 -printf '%t %s %p\n'
thiton
la source
1
Votre suggestion est mon gagnant, et je recommanderais que si les gens sont intéressés par plus de champs pour l'impression, ils RTFM. Par exemple, montrez-moi les autorisations pour tous les fichiers qui ne sont pas un répertoire: find usr/lib/ -not -type d -printf '%M %p\n sortie: -rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so... Apprenez à un homme à pêcher et tout ça ...
Craig
La question concerne Linux, donc pas de réponse déraisonnable, mais pour mémoire, cela nécessite une recherche GNU.
Dan Pritts
5

vous pouvez toujours faire:

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file1
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file2
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file3
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file4
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file5
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file6
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file7

cut à:

$ ls -l | cut -f 8-13 -d ' '

0 Oct  6 23:29 file1
0 Oct  6 23:29 file2
0 Oct  6 23:30 file3
0 Oct  6 23:30 file4
0 Oct  6 23:30 file5
0 Oct  6 23:30 file6
0 Oct  6 23:30 file7

$ 
tolitius
la source
4
ne fonctionne pas avec: propriétés des variables, groupes, tailles de fichiers
meso_2600
Couper n'effondre pas les délimiteurs consécutifs, où comme ls -lutilise le remplissage des espaces. Si vos colonnes ne sont pas de longueur uniforme (quelle colonne 5, la taille du fichier ne le sera souvent pas), couper ne sélectionnera pas les colonnes correctement. Réduire les espaces consécutifs sera utile (attention aux espaces dans les noms de fichiers). ls -l | tr -s ' ' | cut -f 8-13 -d ' '
Dave
4

Un autre non- lschemin:

> stat --printf='%y\t%12s\t%-16n|\n' tmp.*
2017-06-15 10:42:07.252853000 +0200         10485760    tmp.1           |
2017-06-15 10:41:25.659570000 +0200              666    tmp.TKPzm3BfRw  |

Explication: %y= date de modification lisible par l'homme; %s= taille en octets ( %12saligné à droite, longueur 12); %n= nom du fichier ( %-16naligné à gauche, longueur 16); \t= tab, \n= saut de ligne. |= littéral pipe char, juste pour afficher la fin du nom de fichier.

Comme ls, statn'a aucune option pour sélectionner les fichiers à afficher. (Cela peut être fait en exécutant un globbing comme illustré ci-dessus ou certains find ... -print0 | xargs -r0 stat ..., par exemple.)

EndlosSchleife
la source
La question concernait Linux, donc votre réponse est correcte, mais pour tous ceux qui s'en soucient, voici un équivalent pour FreeBSD stat. stat -f '%N %Sm %z' filename
Dan Pritts
2

Légère variation sur tolitius

ls -lh | cut -f 6- -d ' '
zzapper
la source
1
Voulez-vous expliquer ce que la variation ajoute?
Ivo Flipse
Supprime simplement la nécessité de spécifier le numéro du champ de fin en utilisant le 6 au lieu de 6-x
zzapper