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 é columns
com um s
do GNU autogen). Ou:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
Usando column
como encontrado nos BSDs ou no bsdmainutils
Debian 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 *