Filenames
我可以在 ls 列表中截斷長文件名嗎
我有許多名稱很長的文件。請問,有沒有辦法使用 ls -C 並截斷文件名以獲得更多列以獲得整體視圖?
或者有沒有更好的方法來獲得一個緊湊的列表?
您可以執行以下操作:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"
(這
columns
是s
來自 GNU autogen 的)。或者:ls | cut -c1-20 | column -c"${COLUMNS:-80}"
column
在 BSD 或bsdmainutils
Debian 或其衍生產品中 使用。
zsh
還支持在列中列印內容,因此您可以定義如下函式:setopt extendedglob c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
並將其用作:
c 20 *.txt
以列列印列表 txt 文件,截斷為 20 個字元。
為了讓它更瘋狂,你可以添加:
command_not_found_handler() {(($1)) && c "$@"}
這樣,您還可以執行以下操作:
20 *
甚至:
8+8 *