Différence entre ls -l et ll?

59

Je suis relativement nouveau dans le domaine de la programmation dans son ensemble et certains tutoriels me disent d’utiliser les ls -lfichiers d’un répertoire et d’autres ll. Je sais que lsc'est une courte liste, mais y a-t-il une différence entre les deux autres?

Jon
la source
8
Vous voudrez peut-être jeter un coup d'oeil which ll. Vous allez probablement découvrir que llc'est en fait un alias ls -l.
HalosGhost
Alors quelle est la différence entre lstoute autre commande que je mets dans le shell? Si je tape which lsje reçois alias ls='ls --color=auto' /bin/ls, mais si je tape (par exemple) which cdje reçois /usr/bin/which: no cd in (........). EDIT: J'ai essayé à nouveau avec which mkdiret j'ai eu /bin/mkdir. Quelle est la distinction entre ces commandes dans lesquelles certaines d’entre elles sont stockées (?) /usr/binEt d’autres apparemment non?
Jon
ceci affecte la valeur par défaut de votre distribution $PATH. lsest très souvent aliasé, donc votre shell indique l'alias (qui prime sur le binaire) et l'emplacement réel du binaire (dans votre cas, /bin/ls). Si vous whichne pouvez pas trouver cd, alors quelque chose semble terriblement faux.
HalosGhost
2
cdest un mot-clé intégré au shell, pas un programme trouvé dans un système de fichiers. Utilisez type cdet type lspour voir ce que je veux dire. Certaines commandes sont simplement remplacées par les commandes intégrées au shell: elles echoexistent dans /bin/echo, mais dans la bashplupart des shells modernes, une echofonction intégrée est appelée à la place (qui a généralement des fonctionnalités étendues). typevous dit en fait lequel.
orion

Réponses:

88

Sur de nombreux systèmes, llest un alias de ls -l:

$ type ll
ll is aliased to `ls -l'

Ce sont les mêmes.

cuonglm
la source
3
ll est aliasé avec `ls -ltr '- j'utilise red hat 6
rdp
3
dans Ubuntu 14.04 il est alias "ls -alF"
Viktor le
3
Également ls -alFdans Ubuntu 12.04, 16.04 et probablement beaucoup plus.
Paul
3
Pour moi sur macOS, Sierra ll est un aliasls -lh
Zorgatone
13

Comme indiqué, llest souvent défini comme un alias de ls -l. En fait, lsest souvent un alias lui-même:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

La commande actuelle est lscelle ci-dessus qui se trouve dans /usr/bin. llest conçu à des fins pratiques, mais vous ne pouvez pas vous fier à sa définition sur tous les systèmes * nix. Il est donc bon de savoir ce qu’il fait réellement.

Sosiouxme
la source
Très bonne réponse. Je ne peux pas m'empêcher d'ajouter que c'est l'une des raisons pour lesquelles le recours lsà l'automatisation (en particulier les monolignes ad-hoc) est généralement une mauvaise idée. Il dispose de plusieurs options qui modifient sa sortie et de nombreuses façons de les spécifier. Lorsque différentes distributions choisissent des valeurs par défaut différentes, cela entraîne généralement des maux de tête.
ctt le
Je n'ai vu aucune distribution populaire à alias lsà autre chose que ls --color=auto. C'est ça ou il n'y a pas d'alias.
phoops
4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'
laike9m
la source
1
Aussi 12.04 et 16.04, mais c’est tout ce que j’ai à tester pour le moment.
Paul
3

Dans la plupart des cas, llne fonctionne pas dans les scripts shell.

Sree
la source
1
Ce qui se passe, c'est que les commandes telles que llsont généralement des alias, qui ne sont pas définis lors de l'exécution de scripts.
vonbrand
3
Certaines personnes ont le pseudonyme dans le fichier .profile, et le pseudonyme travaille dans un shell interactif. Après le débogage / test d'un nouveau script, le script échoue soudainement dans crontab. Cron ne lit pas le .profile.
Walter Un
1
Ce n'est pas une réponse à la question, mais devrait plutôt être un commentaire. De ma petite compréhension, les alias sont obsolètes dans les scripts shell.
cornflakes24
Je dis "la plupart", mais ce n'est pas le mien, et j'utilisels -l
travelingbones
1

llest un alias pour ls -l.

L'option -lindique à la commande d'utiliser un format de liste longue. Il restitue plusieurs colonnes, non affichées lorsque la lscommande simple est utilisée. Ces colonnes comprennent:

  • Les permissions

  • Nombre de liens durs

  • Propriétaire du fichier

  • Groupe de fichiers

  • Taille du fichier

  • Modification

  • temps

  • Nom de fichier

Code_Jamer
la source
0

ll est en fait un alias "ls -l". Si vous exécutez ll, il vous montrera les fichiers dans le shell, puis vous devrez appuyer sur Entrée pour voir les fichiers suivants (plus ... option). Si vous exécutez ls -l, tous les fichiers seront affichés à la fois.

Pmaipmui
la source