Eu tenho vários arquivos com nomes muito longos. Por favor, existe uma maneira de usar ls -C e truncar os nomes dos arquivos para obter mais colunas para uma visão geral?
Ou existe uma maneira melhor de obter uma listagem compacta?
Eu tenho vários arquivos com nomes muito longos. Por favor, existe uma maneira de usar ls -C e truncar os nomes dos arquivos para obter mais colunas para uma visão geral?
Ou existe uma maneira melhor de obter uma listagem compacta?
Respostas:
Você poderia fazer algo como:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

(isso é columnscom um sdo GNU autogen). Ou:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Usando columncomo encontrado nos BSDs ou no bsdmainutilsDebian ou seus derivados.
zsh também tem suporte para imprimir itens em colunas, para que você possa definir uma função como:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
E use-o como:
c 20 *.txt
Para imprimir os arquivos txt da lista em colunas, truncado para 20 caracteres.
E para torná-lo um pouco mais louco, você pode adicionar:
command_not_found_handler() {(($1)) && c "$@"}
Dessa forma, você também pode fazer:
20 *
Ou até:
8+8 *
