Ls

ls –tab-size 如何工作?

  • October 8, 2019

我不知道ls --tab-size=COLS(或ls -T<COLS>)做了什麼。

來自男人:

假設製表位在每個 COLS 而不是 8

例如,這裡發生了什麼?或者什麼是有用的例子?

$ touch a b c d
$ ls --color=never
a  b  c  d
$ ls --color=never -T0
a  b  c  d
$ ls --color=never -T1
a    b   c   d
$ ls --color=never -T2
a  b    c  d
$ ls --color=never -T3
a   b   c   d
$ ls --color=never -T4
a  b  c  d
$ ls --color=never -T5
a  b  c  d
$ ls --color=never -T6
a  b    c  d

--tabsize=cols/-T選項用於將標籤大小調整為終端ls的標籤大小或禁用標籤的使用。如果您的終端使用“非標準”值 != 8 並且輸出出現亂碼,則這是有道理的。

的描述info ls稍微好一點:

假設每個製表位都是 COLS 列寬。預設值為 8。 ls為了提高效率,盡可能在輸出中使用選項卡。如果 COLS 為零,則根本不要使用製表符。

某些終端仿真器可能無法正確地將列與非 ASCII 字節後的 TAB 右側對齊。-T0您可以通過使用選項或放入您的環境來避免該問題TABSIZE=0,告訴ls使用空格而不是製表符對齊。

例子:

$ ls
adipiscing  consectetur  elit  felis      in      lorem   nulla     posuere  tincidunt
amet        dolor        et    fermentum  ipsum   mauris  nunc      sit      venenatis
arcu        donec        ex    id         libero  nec     pharetra  tempor   vulputate

這看起來不錯,還有-T0and -T8and

$ echo -e "a\tb"
a       b

顯示我的標籤寬度設置為 8 個字元。

$ ls -T3
adipiscing      consectetur  elit  felis                in                lorem  nulla    posuere  tincidunt
amet                    dolor                    et      fermentum      ipsum   mauris  nunc              sit            venenatis
arcu                    donec                    ex      id                     libero  nec              pharetra  tempor   vulputate

看起來很糟糕。

現在將製表位設置為 3 個字元,然後重試:

$ tabs -3; echo -e "a\tb"; ls -T3
a  b
adipiscing  consectetur  elit  felis      in      lorem   nulla     posuere  tincidunt
amet        dolor        et    fermentum  ipsum   mauris  nunc      sit      venenatis
arcu        donec        ex    id         libero  nec     pharetra  tempor   vulputate

並且輸出再次被很好地格式化。

引用自:https://unix.stackexchange.com/questions/545621