Quando executo o comando ls
no macOS, ele mostra os nomes das pastas com o mesmo comprimento, preenchendo espaços para nomes de pastas curtas:
jihu@ksm1 Home $ ls
bin code devel opt personal shared
Enquanto no Linux parece muito melhor:
jihu@hqlin1 Home $ ls
bin code devel opt personal shared
Existe alguma opção para remover os espaços de preenchimento no macOS? Em ambos os sistemas eu estou usando o bash.
ls
Linux, mas o que o Mac'ls
está tentando fazer é criar "colunas" de saída. Corrals
em uma pasta com muitos arquivos e você verá como tudo está alinhado. Você está certo, não parece bom se o espaçamento afeta apenas uma linha, mas tente em uma pasta grande e eu acho que você vai gostar. Talvez o Linuxls
seja inteligente o suficiente para fazer a coluna, se houver mais de uma linha, mas pule se houver apenas uma linha?ls
está disposto a usar espaços (em vez de e não só guias) quando alcançar saída colunar (ver github.com/coreutils/coreutils/blob/master/src/ls.c#L4958 ) enquanto que BSDls
vai só use abas. Como as abas são tipicamente maiores que um espaço, o número máximo de colunas que podem ser ajustadas em uma linha com BSDls
é menor ...Respostas:
Olhando para o
man ls
macOS você pode gostar da-m
opção que apenas separa entradas com vírgulas ou a-1
opção se você estiver OK com cada entrada em uma nova linha. Eu suponho que você também pode fazer,ls -C | tr -s "\t" " "
mas isso parece um pouco desajeitado ...Uma solução extrema pode ser usar algo como Homebrew para instalar
coreutils
e que lhe daria acesso agls
(GNU,ls
mas com um nome diferente para evitar conflitos) que vem do mesmo upstream que o quels
você está usando no Linux.fonte