Quelle est la différence entre «dir» et «ls»?

17

J'ai comparé les pages de manuel de diret lset elles semblent être exactement les mêmes. Les deux font partie de GNU coreutils et du "list directory contents".

La seule différence que j'ai vue jusqu'à présent est que dircela ne colorise pas la sortie.

Alors pourquoi existe-t-il deux commandes? Y a-t-il une différence que j'ai ratée? Pourquoi voudrait - on préfère dirplus ls?

Martin Thoma
la source
8
On ne le ferait pas! Déjà!
Bananguin

Réponses:

20

Je serais porté à penser que ce dirn'est là que pour la compatibilité descendante .

De GNU Coreutils :

dir est équivalent à ls -C -b; c'est-à-dire que, par défaut, les fichiers sont répertoriés dans des colonnes, triés verticalement et les caractères spéciaux sont représentés par des séquences d'échappement avec barre oblique inverse.

Soit dit en passant, lsne coloriser pas la sortie par défaut: c'est parce que la plupart des alias distros lsà ls --color=autoen /etc/profile.d. Pour un test, tapez unalias lspuis essayez ls: il sera incolore.

Renan
la source
6
dirn'est pas fourni pour la compatibilité descendante. Au lieu de cela, lsfonctionne comme il le fait pour la compatibilité descendante (et parce que de nombreux utilisateurs veulent qu'il fonctionne de cette façon), et direst fourni comme une alternative, que les développeurs GNU considèrent généralement préférable car sa sortie est indépendante de l'appareil. Voir 4.5 Normes pour les interfaces en général dans les normes de codage GNU et ma réponse à cette question AU pour plus de détails.
Eliah Kagan
8

dirn'est pas une commande standard Unix mais probablement juste une sorte d'alias / clone pour fournir une certaine familiarité avec les utilisateurs de Windows (DOS) (et peut-être VAX-VMS et d'autres OS où a dirété utilisé pour lister les fichiers).

jlliagre
la source