Unterdrücken des Ausdrucks der gesamten Zeile mit ls -l

Unterdrücken des Ausdrucks der gesamten Zeile mit ls -l

ls -lfügt oben in der Ausgabe eine Gesamtzeile (für die Gesamtzahl der Blöcke) hinzu. Gibt es eine direkte Möglichkeit, diese Zeile aus der Ausgabe zu unterdrücken? Ich weiß, dass ich die Ausgabe in einen anderen Befehl umleiten kann, um die erste Zeile zu löschen, aber ich frage mich, ob mir eine einfache Option fehlt, um diese Zeile überhaupt zu unterdrücken.

Antwort1

Nein, Sie vermissen keine einfache Option zum Löschen der totalZeile, zumindest nicht, wenn der Inhalt eines Verzeichnisses aufgelistet wird (einschließlich des aktuellen, ohne Argumente). Bei GNU beispielsweise führen lsdie Optionen , -l, -g, und dazu -n, dass die Zeile-o-stotalAngezeigt werden, ohne die Möglichkeit, es zu deaktivieren:

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

Das ist eigentlichdurch POSIX vorgeschrieben.

Wenn Sie jedoch die aufzulistenden Dateien angeben und nicht ein Verzeichnis, lswird die Gesamtzahl nicht angezeigt. Die -dOption bewirkt, dass Verzeichnisse als Dateien behandelt werden, was das gewünschte Ergebnis liefert, wie inKüsten:

ls -ld *

erzeugt die gleiche Ausgabe wie

ls -l

abzüglich der totalZeile, solange Ihre Shell beim Expandieren *( dotglob) keine versteckten Dateien einbezieht und solange das aktuelle Verzeichnis nicht so viele Dateien enthält, dass das Expandieren *die maximale Kommandozeilenlänge überschreitet.

Sie können auch ein Verzeichnis angeben ( ls -ld /path/to/directory/*), aber im Gegensatz zu werden in der Ausgabe die Dateien mit dem angegebenen Pfad aufgelistet ls -l /path/to/directory.

verwandte Informationen