
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
.