ls 命令 - 定义列数

ls 命令 - 定义列数

ls有没有办法定义输出中的列数?

我到目前为止:ls -C对列进行排序并ls -1生成一列。--tabsize =生成两列的选项导致的结果如下这张图片在这里[其起源在这篇文章中]。

了解到命令假设列有八个字符宽我尝试过width=,但没有走多远。

问题ls:如何使用“板载工具”定义行数→无需其他命令,例如column

答案1

否。ls不具备此能力(很少有人愿意)

答案2

只需用 1 覆盖宽度参数即可:

ls -w 1

对我来说效果很好!

答案3

你必须通过管道传输|你的ls输出。只要您知道分隔符是什么,程序sed就可以对数据进行排序。cut大多数情况下,在列间距中,分隔符是制表符。

但是,我不知道您希望将输出分成ls几列的多种方法或原因。您始终可以通过管道输出more,这将使您的数据更易于阅读。

答案4

我在 Linux Debian 的终端上测试了这些命令。如果您的终端足够宽,只需输入“ls”就会给出列,但它不会使用终端的所有空间(宽度)。我将终端设置为与屏幕一样宽,“ls”只生成了 4 列。问题是,如果你将其输入“more”,你就会失去列。

接下来,我在终端中使用“ls -w200”,与屏幕一样宽(200 是“假定的屏幕宽度”)。我现在有 5 列(而不是之前只有“ls”的 4 列),并且占据了屏幕的整个宽度——每个人都知道这会受到文件名长度的影响。现在它比“ls”本身多了一列,并且使用全屏宽度。再次,像“ls”一样,如果我将命令通过管道输入“more”(“ls -w200 | more”),则会丢失列(即只有一列)。

因此,这是您可以得到的最接近多个列的值。

注意:我尝试了命令“ls -w2000”并将终端宽度最大化。输出是一行,带有“环绕”,目录条目之间有 2 个空格。它看起来很乱,但却以最短的方式显示了目录中的所有条目。

相关内容