Qual comando é o alias ll para?

23

Alguém pode me dizer para qual comando de terminal o alias ll serve? Tudo o que posso encontrar on-line é que muitas pessoas dizem que é um alias para ls -l ou ls -la ou ls -ltr . Mas isso é simplesmente errado. O resultado parece diferente. Existe alguma maneira de localizar ll e analisar sua sintaxe?

    
por Socrates 09.05.2018 / 13:31

4 respostas

67

Você pode usar os comandos alias ou type para verificar o que um alias específico significa:

$ alias ll
alias ll='ls -alF'

$ type ll
ll is aliased to 'ls -alF'

No entanto, os aliases podem usar outros aliases, por isso, talvez seja necessário verificá-lo recursivamente, por exemplo, no caso de ll , você também deve verificar o comando ls que ele chama:

$ alias ls
alias ls='ls --color=auto'

$ type ls
ls is aliased to 'ls --color=auto'

Portanto, ll significa realmente:

ls --color=auto -alF
    
por Byte Commander 09.05.2018 / 13:37
12

ll é um alias definido no seu ~/.bashrc , desde que você não o tenha alterado, é ls -alF :

$ grep ll= <~/.bashrc
alias ll='ls -alF'

Estas três opções são:

  • -a, --all - não ignora entradas iniciadas com.
  • -l - usa um formato de listagem longo
  • -F, --classificar - indicador de acréscimo (um dos * / = > @ |) às entradas

Como

$ grep ls= <~/.bashrc
alias ls='ls --color=auto'

mostra que ls é novamente um alias para ls --color=auto :

With --color=auto, ls emits color codes only when standard output is connected to a terminal. The LS_COLORS environment variable can change the settings. Use the dircolors command to set it.

    
por dessert 09.05.2018 / 13:37
3

Primeiro, desculpe pelo meu inglês ruim. Segundo, você pode procurar em seu ~ / .bashrc (ou algum arquivo onde seus aliases estão) ou você pode escrever alguns destes comandos em seu shell:

command -v ll # "command" is a shell built-in that display information about       
              # the command. Use the built-in "help command" to see the 
              # options.
type -p ll # "type" is another built-in that display information about how the 
           # command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your 
                      # alias. This command search recursively  under  each  
                      # folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in 
                      # the files (not folders) in your home folder

Mas por que usar o find sem o nome ". *"? Porque você pode colocar isso no seu .bashrc

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Como "ll" é um alias, não é necessário que tenha apenas um significado (ll = 'ls -alF --color'), você pode codificar seu "ll" como um outro comando como, não sei, "rm". Eu acho que é mais uma convenção (produto de usos comuns).

Mas "ll" pode ser um programa armazenado em qualquer pasta do seu PATH. Por exemplo, se você tiver uma pasta chamada "bin" em sua casa, crie um script "ll" que contenha algo como

#!/bin/bash
ls -lhar

Mas, e se o seu PATH tiver sido alterado para adicionar outra pasta que contenha o novo comando "ll"? Para informações mais interessantes, você pode consultar o seguinte link para uma questão relacionada.

por mrc_es 10.05.2018 / 06:24
0

Não há necessidade de analisar ~ / .bashrc ou qualquer outro script. Você pode verificar seus valores atuais de todos os aliases que digitarem o comando alias no terminal. Ele trará todos os aliases definidos com suas definições para sua tela.

    
por Serg Stetsuk 16.05.2018 / 02:42