Qual é a diferença entre ls e l? [duplicado]

49

Eu acidentalmente digitei l em vez de ls e descobri que o comando ainda imprimia uma lista dos arquivos em meu diretório atual. A tentativa de l --help exibe o arquivo de ajuda para ls , sugerindo que l é apenas um alias de ls .

No entanto, cada arquivo foi sufixado por um * . Por que isso e o que isso significa?

Caso isso faça diferença, é quando você executa a última versão estável do Ubuntu.

    
por Rupert Madden-Abbott 26.11.2010 / 02:46

5 respostas

81

RESPOSTA BREVE: entenda o que exatamente esse alias faz, você pode verificar o arquivo ~/.bashrc e pesquisar o termo " alias l= ". Não é nada, mas ls -CF

RESPOSTA LONGA Uma boa maneira de inspecionar o que é um comando:

type l

Se for um programa ou um script, ele lhe dará a sua localização, se for um alias, ele lhe dirá o que é um alias, se for uma função, ele irá imprimir a função; caso contrário, ele informará se é uma palavra-chave interna ou uma palavra-chave.

Exemplos:

$ type l
l is aliased to 'ls -CF'
$ type find
find is /usr/bin/find
$ type connecthome
connecthome is hashed (/usr/local/bin/connecthome)
$ type grep
grep is aliased to 'grep --color=auto --binary-files=without-match --devices=skip'
$ type hello_se
hello_se is a function
hello_se () 
{ 
  echo 'Hello, Stack Exchangers!'
}
$ type type
type is a shell builtin
$ type for
for is a shell keyword
$ type nosuchthing
-bash: type: nosuchthing: not found
    
por 26.11.2010 / 03:21
9
$ l --help
l: command not found

Parece que você tem um alias configurado em seu ambiente. Talvez você tenha herdado um .profile , .bashrc ou semelhante contendo algo como alias l='ls -F' .

-F, --classify
              append indicator (one of */=>@|) to entries

Teste which l e alias para rastrear sua definição.

    
por 26.11.2010 / 03:11
4

CORRIGIDO: l é alias para ls -CF (não tenho certeza) no padrão .bashrc no ubuntu

Você pode digitar alias para verificar todos os aliases. Seria mencionado lá.

    
por 26.11.2010 / 10:41
2

Por padrão, é um alias para ls -CF no ubuntu.

    
por 27.11.2010 / 11:00
2

Eu redefinei todos os meus ls atalhos no meu .zshrc .

Esta é a seção relevante:

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
    if [ -n ~/.dir_colors ]; then
        eval "'dircolors -b ~/.dir_colors'"
    else
        eval "'dircolors -b /etc/DIR_COLORS'"
    fi
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi

# some more ls aliases
alias l='ls -CF'
alias ll='ls -ClhF'
alias la='ls -CaF'
alias lla='ls -CalhF'
alias l.='ls -CAF --ignore=\*'
alias ll.='ls -CAlhF --ignore=\*'
alias t='tree -C'

Observe que ls é redefinido:

% type ls
ls is an alias for ls --color=auto
    
por 29.11.2010 / 04:51