Diferença entre ls -l e ll?

59

Eu sou relativamente novo em programação como um todo e alguns tutoriais têm me dito para usar ls -lpara examinar arquivos em um diretório e outros têm dito ll. Eu sei que lsé uma lista curta, mas há uma diferença entre os outros dois?

Jon
fonte
8
Você pode querer dar uma olhada which ll. Você provavelmente descobrirá que llé realmente um apelido para ls -l.
HalosGhost
Então, qual é a diferença entre lsqualquer outro comando que eu coloquei no shell? Se eu digitar which ls, recebo alias ls='ls --color=auto' /bin/ls, mas se digitar (por exemplo) which cd, recebo /usr/bin/which: no cd in (........). EDIT: Eu tentei novamente which mkdire consegui /bin/mkdir. Qual é a distinção entre esses comandos em que alguns deles estão armazenados (?) /usr/binE outros aparentemente não?
Jon
isso afeta o padrão da sua distribuição $PATH. lsé muitas vezes alias, então seu shell relata o alias (que tem precedência sobre o binário) e a localização real do binário (no seu caso /bin/ls). Se whichnão foi possível encontrar cd, então algo parece terrivelmente errado.
HalosGhost
2
cdé uma palavra-chave interna do shell, não um programa encontrado em um sistema de arquivos. Use type cde type lspara ver o que quero dizer. Alguns comandos são simplesmente substituídos por shell builtins: echoexiste /bin/echo, mas na bashmaioria dos shells modernos, echoé chamada uma função embutida (que geralmente possui recursos estendidos). typerealmente diz qual é.
orion 4/15

Respostas:

88

Em muitos sistemas, llexiste um alias de ls -l:

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

Eles são os mesmos.

cuonglm
fonte
3
ll é alias para `ls -ltr '- estou usando o red hat 6
rdp 27/05
3
no Ubuntu 14.04 ll é alias para 'ls -alF'
Viktor
3
Também ls -alFno Ubuntu 12.04, 16.04 e provavelmente muito mais.
Paul
3
Para mim, no MacOS Sierra ll é alias parals -lh
Zorgatone
13

Como observado, llgeralmente é definido como um apelido de ls -l. De fato, lsmuitas vezes é um apelido em si:

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

O comando real é o lsque está acima em /usr/bin. llfoi concebido como uma conveniência, mas você não pode confiar na definição em todos os sistemas * nix; portanto, é bom saber o que realmente está fazendo.

sosiouxme
fonte
Ótima resposta. Não posso deixar de acrescentar que essa é uma das razões pelas quais confiar lsna automação (especialmente as one-liners ad-hoc) geralmente é uma má idéia. Possui várias opções que alteram sua saída e várias maneiras de especificá-las. Com distribuições diferentes escolhendo padrões diferentes, tende a levar a dores de cabeça.
ctt
Eu não vi nenhuma distribuição popular para alias lspara outra coisa senão ls --color=auto. É isso ou não há apelido.
Phoops
4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'
laike9m
fonte
1
Também 12.04 e 16.04, mas é tudo o que tenho disponível para testar agora.
Paul
3

Na maioria dos casos, llnão funciona em scripts de shell.

Sree
fonte
1
O que acontece é que normalmente comandos como llrealmente são aliases, que não são definidos ao executar scripts.
vonbrand
3
Algumas pessoas têm o alias no .profile e o alias está trabalhando em um shell interativo. Após depurar / testar um novo script, o script falha repentinamente no crontab. Cron não lê o .profile.
Walter A
1
Esta não é uma resposta para a pergunta, mas deve ser um comentário. Do meu pequeno entendimento, os aliases são preteridos nos scripts de shell.
cornflakes24
Eu digo "a maioria", mas isso não acontece na minha, e eu usols -l
travelingbones
1

llé um alias para ls -l.

A opção -linforma ao comando para usar um formato de lista longa. Ele retorna várias colunas, não mostradas quando o lscomando simples é usado. Essas colunas incluem:

  • Permissões

  • Número de hardlinks

  • Proprietário do arquivo

  • Grupo de arquivos

  • Tamanho do arquivo

  • Modificação

  • Tempo

  • Nome do arquivo

Code_Jamer
fonte
0

ll é na verdade alias para `ls -l 'Se você executar ll, ele mostrará os arquivos no shell e você deverá pressionar Enter para ver os próximos arquivos (mais .. opção). Se você executar ls -l, todos os arquivos serão exibidos por vez.

pmaipmui
fonte