我正在寻找不涉及less
命令的这个问题的答案:
有没有办法ls
在终端中运行命令,并防止长文件名换行?
例如,在运行 ls 时,而不是以下:
shortfile
thisisalongfi
lename
shortfile
我希望它在要换行的地方切断长文件名,或者根本不换行,这样它就可以简单地显示为:
shortfile
thisisalongfi
shortfile
我正在寻找不涉及less
命令的这个问题的答案:
有没有办法ls
在终端中运行命令,并防止长文件名换行?
例如,在运行 ls 时,而不是以下:
shortfile
thisisalongfi
lename
shortfile
我希望它在要换行的地方切断长文件名,或者根本不换行,这样它就可以简单地显示为:
shortfile
thisisalongfi
shortfile
setterm
将尽最大努力配置您的终端(终端仿真器),但通常终端可能支持也可能不支持该功能。该
ls
命令没有截断文件名的选项,因此您需要一个额外的工具。您可以使用
cut
截断一行。在终端中,环境变量LINES
和COLUMNS
包含终端尺寸。这会抑制
ls
通常混叠的着色。没有简单的方法将着色与基于文本工具的截断结合起来,所以如果你想要着色,最好告诉终端本身 truncate。标准
fold(1)
命令在这里有些糟糕,因为很难区分已包装的文件名和未包装的文件名:GNU
sed
可以工作,但有点被反斜杠感染:awk
可以显示行被截断的位置:虽然这可能应该隐藏在接受
w
宽度参数的脚本中,或者$COLUMNS
默认使用。同时,
对便携性不是很好。