Comment puis-je utiliser ls
sous 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.
Comment puis-je utiliser ls
sous 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.
Réponses:
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
Techniquement, ce n'est pas possible avec ls
, mais find
on peut faire le même travail avec son -printf
switch:
find -maxdepth 1 -printf '%t %s %p\n'
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 ...
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
$
ls -l
utilise 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 ' '
Un autre non- ls
chemin:
> 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
= tab, \n
= saut de ligne. |
= littéral pipe char, juste pour afficher la fin du nom de fichier.
Comme ls
, stat
n'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.)
stat -f '%N %Sm %z' filename
Légère variation sur tolitius
ls -lh | cut -f 6- -d ' '