我正在寻找这个问题的答案,不涉及命令less
:
有没有办法ls
在终端中运行命令并防止长文件名换行?
例如,在运行 ls 时,而不是以下内容:
shortfile
thisisalongfi
lename
shortfile
Run Code Online (Sandbox Code Playgroud)
我希望它在要换行的位置截断长文件名,或者根本不换行,以便它显示为:
shortfile
thisisalongfi
shortfile
Run Code Online (Sandbox Code Playgroud)
Kam*_*ski 12
setterm --linewrap off
ls
setterm --linewrap on
Run Code Online (Sandbox Code Playgroud)
setterm
将尽力配置您的终端(终端仿真器),但一般来说,终端可能支持也可能不支持该功能。
该ls
命令没有截断文件名的选项,因此您需要一个额外的工具。
您可以使用cut
来截断一行。在终端中,环境变量LINES
包含COLUMNS
终端尺寸。
ls | cut -c 1-$COLUMNS
Run Code Online (Sandbox Code Playgroud)
ls
这可以抑制通常混叠的着色。没有简单的方法可以将着色与基于文本工具的截断相结合,因此如果您想要着色,最好告诉终端本身进行 truncate。