将 ls 管道传输到 head 时保持格式化

将 ls 管道传输到 head 时保持格式化

当我打电话时ls~得到

Documents  Downloads  Templates  Desktop  Music  Videos  Public  Pictures

如果我通过管道连接ls到头部(例如ls | head -30)我得到

Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos

我正在尝试使用别名lsls | head -30以便在处理ls大文件夹时不会向我的终端发送垃圾邮件。问题是我更喜欢第一种格式(来自普通格式ls)。
有什么方法可以在限制结果数量的同时保留原始格式吗?

答案1

这有效:

unbuffer ls | head

它欺骗 ls 命令,使其表现得像正在写入终端

答案2

作为ls 的手册页描述:

-C    list entries by columns

所以,

alias ls='ls -C | head -30'

请注意,这样的别名将阻止您将任何参数传递给ls.例如:

ls /tmp/

可能不会做你期望的事情。您可能会发现 shell 函数是比别名更好的选择。

相关内容