ls -l
出力の上部に総行(総ブロック数)を追加します。出力でこの行を抑制する直接的な方法はありますか?最初の行を削除するために出力を別のコマンドにパイプすることができることを知っていますが、最初に行を抑制する簡単なオプションが欠けているかどうか疑問に思います。
ベストアンサー1
total
いいえ、少なくともディレクトリの内容(引数なしで現在のディレクトリを含む)を一覧表示するときは、行を削除する簡単なオプションをお見逃しなく。たとえば、GNUの場合、およびオプションを使用すると、次の行が表示されますls
。-l
-g
-n
-o
-s
total
表示予定、無効にするオプションはありません。
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
。