ls -l を使用してデフォルトの行印刷を無効にします。

ls -l を使用してデフォルトの行印刷を無効にします。

ls -l出力の上部に総行(総ブロック数)を追加します。出力でこの行を抑制する直接的な方法はありますか?最初の行を削除するために出力を別のコマンドにパイプすることができることを知っていますが、最初に行を抑制する簡単なオプションが欠けているかどうか疑問に思います。

ベストアンサー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

おすすめ記事