ls --tab-sizeはどのように機能しますか?

ls --tab-sizeはどのように機能しますか?

私はそれが何をしているのかls --tab-size=COLS(または)わかりません。ls -T<COLS>

男性の場合:

タップストップが8以外のすべてのCOLSにあると仮定

ここで何が起こっているのでしょうか?それとも有用な例は何ですか?

$ 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

答え1

--tabsize=cols/ オプションは、-Tタブサイズをls端末のタブサイズに調整したり、タブの使用を無効にするために使用されます。端末が「非標準」値!= 8を使用し、出力が歪んでいる場合、これは意味があります。

説明がinfo ls少し良いです。

各タップストップが COLS 列幅であると仮定します。デフォルトは8です。 ls効率のために、可能であれば出力にタブを使用してください。 COLSが0の場合、タブ文字はまったく使用されません。

一部の端末エミュレータでは、ASCII以外のバイトの後ろにあるTABの右側に列を正しく並べ替えることができない場合があります。このオプションを使用するか、並べ替えるためにタブの代わりにスペースを使用するように指示する環境-T0に配置することで、問題を回避できます。TABSIZE=0ls

例:

$ 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

これは大丈夫に見えます、そして-T0そして-T8そして

$ 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

そして、出力は再びきれいにフォーマットされます。

関連情報