Ls

ls 命令行換行預防

  • September 21, 2022

我正在尋找不涉及less命令的這個問題的答案:

有沒有辦法ls在終端中執行命令,並防止長文件名換行?

例如,在執行 ls 時,而不是以下:

shortfile
thisisalongfi
lename
shortfile

我希望它在要換行的地方切斷長文件名,或者根本不換行,這樣它就可以簡單地顯示為:

shortfile
thisisalongfi
shortfile
setterm --linewrap off
ls
setterm --linewrap on

setterm將盡最大努力配置您的終端(終端仿真器),但通常終端可能支持也可能不支持該功能。

ls命令沒有截斷文件名的選項,因此您需要一個額外的工具。

您可以使用cut截斷一行。在終端中,環境變數LINESCOLUMNS包含終端尺寸。

ls | cut -c 1-$COLUMNS

這會抑制ls通常混疊的著色。沒有簡單的方法將著色與基於文本工具的截斷結合起來,所以如果你想要著色,最好告訴終端本身 truncate

引用自:https://unix.stackexchange.com/questions/718015