Qual é a diferença entre "dir" e "ls"?

17

Comparei as páginas do manual de dire lse eles parecem ser exatamente o mesmo. Ambos fazem parte do GNU coreutils e "listam o conteúdo do diretório".

A única diferença que eu vi até agora é que dirnão coloriza a saída.

Então, por que existem dois comandos? Há uma diferença que eu perdi? Por que alguém iria preferir dirmais ls?

Martin Thoma
fonte
8
Um não faria! Sempre!
Bananguin 9/10/12

Respostas:

20

Eu estaria inclinado a pensar que direxiste apenas para compatibilidade com versões anteriores .

Do GNU Coreutils :

dir é equivalente a ls -C -b; ou seja, por padrão, os arquivos são listados em colunas, classificados verticalmente e os caracteres especiais são representados por seqüências de escape de barra invertida.

A propósito, lsnão colorir a saída por padrão: isso ocorre porque a maioria das distros alias lspara ls --color=autoin /etc/profile.d. Para um teste, digite unalias lse tente ls: será incolor.

Renan
fonte
6
dirnão é fornecido para compatibilidade com versões anteriores. Em vez disso, lsfunciona da mesma maneira que para compatibilidade com versões anteriores (e porque muitos usuários desejam que funcione dessa maneira) e diré fornecido como uma alternativa, que os desenvolvedores do GNU consideram geralmente preferível porque sua saída é independente do dispositivo. Veja 4.5 Padrões para Interfaces Geralmente nos padrões de codificação GNU e minha resposta a essa pergunta da UA para detalhes.
Elias Kagan
8

dirnão é um comando padrão do Unix, mas provavelmente é apenas um tipo de alias / clone para fornecer alguma familiaridade com os usuários do Windows (DOS) (e possivelmente o VAX-VMS e outros sistemas operacionais onde dirfoi usado para listar arquivos).

jlliagre
fonte