Suprima a impressão da linha total com ls -l

Suprima a impressão da linha total com ls -l

ls -ladiciona uma linha total (para o número total de blocos) no topo de sua saída. Existe uma maneira direta de suprimir esta linha da saída? Eu sei que posso canalizar a saída para outro comando para excluir a primeira linha, mas estou me perguntando se estou faltando uma opção simples para suprimir essa linha em primeiro lugar.

Responder1

Não, não está faltando uma opção simples para eliminar a totallinha, pelo menos não ao listar o conteúdo de um diretório (incluindo o atual, sem argumentos). Por exemplo, com GNU ls, as -lopções -g, -n, -oe -sfazem com que a totallinhapara ser exibido, sem opção para desativá-lo:

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');
}

Isso é na verdadeexigido pelo POSIX.

Entretanto, se você especificar os arquivos a serem listados, em vez de um diretório, lso total não será exibido; a -dopção faz com que os diretórios sejam tratados como arquivos, produzindo o resultado desejado, conforme mencionado porCostas:

ls -ld *

produzirá a mesma saída que

ls -l

menos a totallinha, desde que seu shell não inclua arquivos ocultos ao expandir *( dotglob) e desde que o diretório atual não contenha tantos arquivos que a expansão *exceda o comprimento máximo da linha de comando.

Você também pode especificar um diretório ( ls -ld /path/to/directory/*), mas a saída listará os arquivos com o caminho fornecido, ao contrário de ls -l /path/to/directory.

informação relacionada