Подавить вывод общей строки с помощью ls -l

Подавить вывод общей строки с помощью ls -l

ls -lдобавляет строку total (для общего числа блоков) в верхнюю часть своего вывода. Есть ли прямой способ отключить эту строку из вывода? Я знаю, что могу передать вывод в другую команду, чтобы удалить первую строку, но мне интересно, не упускаю ли я простой вариант для отключения этой строки в первую очередь.

решение1

Нет, вы не упускаете простой вариант удаления строки, по крайней мере , totalпри выводе содержимого каталога (включая текущий, без аргументов). Например, в GNU параметры ls, -l, , и вызывают строку-g-n-o-stotalбыть отображенным, без возможности его отключения:

if (format == long_format || print_block_size)
{
  const char *p;
  char buf[LONGEST_HUMAN_READABLE + 1];

  DIRED_INDENT ();
  p = _("total");
  DIRED_FPUTS (p, stdout, strlen (p));
  DIRED_PUTCHAR (' ');
  p = human_readable (total_blocks, buf, human_output_opts,
                      ST_NBLOCKSIZE, output_block_size);
  DIRED_FPUTS (p, stdout, strlen (p));
  DIRED_PUTCHAR ('\n');
}

Это на самом делепредписано POSIX.

Однако если указать файлы для перечисления, а не каталог, lsобщее количество не будет показано; -dопция заставляет каталоги рассматриваться как файлы, что дает желаемый результат, как указаноКостас:

ls -ld *

даст тот же результат, что и

ls -l

минус totalстрока, при условии, что ваша оболочка не включает скрытые файлы при расширении *( dotglob) и при условии, что текущий каталог не содержит столько файлов, что расширение *превышает максимальную длину командной строки.

Вы также можете указать каталог ( ls -ld /path/to/directory/*), но в выводе будут перечислены файлы с указанным путем, в отличие от ls -l /path/to/directory.

Связанный контент