shell 当输出到tty(而不是pipe/file)时,获取ls输出的行数

mbskvtky  于 11个月前  发布在  Shell
关注(0)|答案(1)|浏览(94)

在一个zsh函数中,我想得到ls输出的行数(当在终端的表中格式化时)。
ls | wc -l显然不起作用,因为ls的输出在管道传输时是不同的,所以这只会计算文件的数量。

aij0ehis

aij0ehis1#

我通过安装expect(对于unbuffer)并使用

alias unbuffer='unbuffer '
unbuffer ls --color=never | wc -l

如果ls是别名,则unbuffer带有尾随空格的别名会导致ls在第二行中展开,因为诸如--group-directories-first-x之类的标志可能会更改ls输出的行数

相关问题