20

Как я могу использовать ls в linux, чтобы получить список только имен и размеров файлов? Мне не нужно видеть другую информацию, такую как владелец, разрешение.

5 ответов5

23

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

Это напечатает размер файла в байтах, месяце, дате и имени файла.

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
10

Технически, это невозможно с ls , но find может выполнять ту же работу с -printf :

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

Вы всегда можете сделать:

$ 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

$ 
4

Другой способ не - 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  |

Пояснение: %y = удобочитаемая дата модификации; %s = размер в байтах (%12s выровнено по правому краю, длина 12); %n = имя файла (%-16n выровнено по левому краю, длина 16); \t = вкладка, \n = перевод строки. | = буквенная труба char, просто чтобы показать конец имени файла.

Как и в ls , у stat нет опций для выбора файлов для показа. (Это может быть сделано с помощью оболочки, как показано выше, или, например, find ... -print0 | xargs -r0 stat ... ).

2

Незначительные изменения в толеции

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .