Suprimir la impresión de la línea total con ls -l

Suprimir la impresión de la línea total con ls -l

ls -lagrega una línea total (para el número total de bloques) en la parte superior de su salida. ¿Existe una forma directa de suprimir esta línea de la salida? Sé que puedo canalizar la salida a otro comando para eliminar la primera línea, pero me pregunto si me falta una opción simple para suprimir esa línea en primer lugar.

Respuesta1

No, no te falta una opción simple para soltar la totallínea, al menos no cuando enumeras el contenido de un directorio (incluido el actual, sin argumentos). Por ejemplo, con GNU ls, las -lopciones -g, -n, -oy -shacen que la totallíneapara ser mostrado, sin opción para desactivarlo:

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

esto es en realidadordenado por POSIX.

Sin embargo, si especifica los archivos a enumerar, en lugar de un directorio, lsno se mostrará el total; la -dopción hace que los directorios sean tratados como archivos, produciendo el resultado deseado, como lo mencionacostas:

ls -ld *

producirá la misma salida que

ls -l

menos la totallínea, siempre y cuando su shell no incluya archivos ocultos al expandir *( dotglob) y siempre que el directorio actual no contenga tantos archivos que la expansión *exceda la longitud máxima de la línea de comandos.

También puede especificar un directorio ( ls -ld /path/to/directory/*), pero la salida enumerará los archivos con la ruta dada, a diferencia de ls -l /path/to/directory.

información relacionada