ls --tab-size 如何工作?

ls --tab-size 如何工作?

我不知道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

答案1

--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-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

并且输出再次被很好地格式化。

相关内容