ls 命令行换行预防

Lee*_*Lee 4 ls

我正在寻找这个问题的答案,不涉及命令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 命令”@TobySpeight (5认同)

Gil*_*il' 7

ls命令没有截断文件名的选项,因此您需要一个额外的工具。

您可以使用cut来截断一行。在终端中,环境变量LINES包含COLUMNS终端尺寸。

ls | cut -c 1-$COLUMNS
Run Code Online (Sandbox Code Playgroud)

ls这可以抑制通常混叠的着色。没有简单的方法可以将着色与基于文本工具的截断相结合,因此如果您想要着色,最好告诉终端本身进行 truncate