Existem duas opções
-C list entries by columns -x list entries by lines instead of by columns
o primeiro mostra a saída em colunas, onde cada coluna vem depois do precedente (do ponto de vista da classificação):
enzotib@acer:tmp$ touch {10..99}
enzotib@acer:tmp$ ls -C | less
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97
13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93 98
14 19 24 29 34 39 44 49 54 59 64 69 74 79 84 89 94 99
A segunda opção coloca os primeiros elementos na primeira linha, depois na segunda e assim por diante:
enzotib@acer:tmp$ ls -x | less
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
Ao direcionar para um pager, a largura do terminal e a formatação da cor não são levadas em consideração em ls
. Para forçar isso, você pode fazer
ls -Cw $COLUMNS --color | less -r
onde a opção -r
para less
é necessária para interpretar corretamente sequências de cores ANSI.
Colocar essa linha em um script não funciona, porque COLUMNS
não é exportado para subshells. Duas alternativas podem ser usadas
-
export COLUMNS
no seu~/.bashrc
-
implemente essa linha como uma função ou um alias em
~/.bashrc
myls() { ls -Cw $COLUMNS --color "$@" | less -r }