使用 ls -l 禁止列印總行

使用 ls -l 禁止列印總行

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行,只要您的 shell 在擴展*( dotglob) 時不包含隱藏文件,並且當前目錄不包含太多文件,以致擴展*超出最大命令行長度。

您也可以指定目錄 ( ls -ld /path/to/directory/*),但輸出將列出具有給定路徑的文件,這與ls -l /path/to/directory.

相關內容