Posso truncar nomes extensos de arquivos na listagem ls

9

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?

    
por Harry Weston 03.02.2014 / 17:52

2 respostas

9

Você pode fazer algo como:

ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

columnscomsdoGNUautogen).Ou:

ls|cut-c1-20|column-c"${COLUMNS:-80}"

UsandocolumncomoencontradoemBSDsouembsdmainutilsnoDebianouseusderivados.

zshtambémtemsuporteparaimprimircoisasemcolunas,entãovocêpodedefinirumafunçãocomo:

setoptextendedglobc()print-rC$[COLUMNS/(($1)+2)]--"${(M)@[2,-1]##?(#c0,$[$1])}"

E use-o como:

c 20 *.txt

Para imprimir os arquivos da lista txt em colunas, truncados 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é mesmo:

8+8 *

    
por 03.02.2014 / 18:16
0

Assumindo uma tela de 80 colunas, gosto de usar

ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more

use ls -FC para classificar por recência

(Sidenote: meu ls já rola porque está com alias para ls -CF --color | more -r . Não tenho certeza se essa é a melhor prática ...)

    
por 07.06.2017 / 08:03