web-dev-qa-db-fra.com

Comment limiter la sortie de ls pour afficher uniquement le nom du fichier, la date et la taille?

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

23
Pinkie

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
25
Jin

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

find -maxdepth 1 -printf '%t %s %p\n'
11
thiton

tu peux 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 il à:

$ 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

$ 
4
tolitius

Une autre manière non -ls:

> 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 (%12s aligné à droite, longueur 12); %n = nom du fichier (%-16n aligné à gauche, longueur 16); \t = tabulation, \n = saut de ligne. | = caractère de canal littéral, juste pour afficher la fin du nom du fichier.

Comme ls, stat n'a pas d'options pour sélectionner les fichiers à afficher. (Vous pouvez le faire en déplaçant Shell comme indiqué ci-dessus ou par exemple avec find ... -print0 | xargs -r0 stat ....)

4
EndlosSchleife

Légère variation sur tolitius

ls -lh | cut -f 6- -d ' '
2
zzapper