Digamos que eu tenho o seguinte alias no bash - alias ls='ls --color=auto'
- e quero chamar comum ls
sem opções. A única maneira de fazer isso é unalias, execute o comando e, em seguida, alias novamente? Ou há algum truque bacana ou solução alternativa?
164
Respostas:
Você também pode prefixar uma barra invertida para desativar o alias:
\ls
Editar: Outras maneiras de fazer o mesmo incluem:
Use "command":
command ls
conforme Mikel .Use o caminho completo:
/bin/ls
conforme uther .Cite o comando:
"ls"
ou'ls'
conforme o comentário de Mikel.Você pode remover temporariamente o alias dessa sessão de terminal com
unalias command_name
.fonte
command
oubuiltin
.l\s
faz a mesma coisa. Esse comportamento é um bug ou um recurso?É para isso que
command
serve o comando.Experimentar
Isso diz ao shell para ignorar aliases e funções.
Dessa maneira, é suportado pelo bash , zsh e ash / dash.
fonte
O alias é apenas um atalho definido. Neste exemplo, o alias definido é a sequência
ls
que é executadals --color=auto
. Se você não deseja esse comportamento, pode chamar o bináriols
usando o caminho absoluto.Portanto, executar apenas
/bin/ls
produzirá saída sem cor, porque não é o alias que você definiu.Você também pode alterar o alias para algo diferente ou adicionar um novo alias que seja executado apenas
ls
sem os parâmetros de cor.fonte
/bin
e/usr/bin
é arbitrária.which
para alguns comandos:which ls
.which
(outype
), ele faz uma pesquisa via$PATH
; você pode simplesmente usarls
ou, em\ls
vez de especificar o caminho.Outra maneira, com base na resposta do @ uther, é usar
$(which ...)
ou`which ...`
(usando backticks``
) para encontrar automaticamente o caminho do executável. Isso funcionará embash
:Sem dúvida, simplesmente prefixar o comando com a
\
é muito mais curto.ATUALIZAÇÃO : De acordo com Como usar `qual` em um comando com alias? , isso não parece ser confiável.
fonte
`which ls`
executar o binário diretamente.(which ls)
, não funcionou para mim (no Ubuntu 12.04 LTS) E os backticks eram difíceis, eu apenas os escapei: \ `what ls \`. Levou um monte de edição para chegar lá :)$
?Pessoalmente, evito definir aliases com os mesmos nomes dos comandos, portanto,
ls
sempre invoco o comando real. Eu tenho aliases ou funções para várias combinações de opções comol
,ll
, elg
. (Isso significa que eu precisounalias ls
no meu.bashrc
ou.cshrc
.)Acho que as suposições do SO sobre quais opções eu prefiro (substituindo as suposições dos projetistas do
ls
próprio comando) raramente correspondem aos meus gostos pessoais. Por acaso, não gosto do visualls --color=auto
, e sua legibilidade pode variar muito entre preto e branco e branco e preto.YMMV, e as outras soluções ainda são boas de saber.
fonte
Digitar o comando em maiúsculas parece funcionar, tipo
LS
, embora eu não tenha muita certeza do porquê.fonte
LS - display animations aimed to correct users who accidentally enter LS instead of ls.