Disons que j'ai l'alias suivant dans bash - alias ls='ls --color=auto'
- et je veux appeler ordinaire ls
sans options. Est-ce que la seule façon de faire est de faire unalias, de faire la commande puis de nouveau alias? Ou il y a une astuce astucieuse ou une solution de contournement?
164
Réponses:
Vous pouvez également préfixer une barre oblique inverse pour désactiver l'alias:
\ls
Edit: D'autres manières de faire la même chose incluent:
Utilisez "commande":
command ls
selon Mikel .Utilisez le chemin complet:
/bin/ls
comme par la suite .Citez la commande:
"ls"
ou'ls'
selon le commentaire de Mikel.Vous pouvez supprimer temporairement l'alias pour cette session de terminal avec
unalias command_name
.la source
command
oubuiltin
.l\s
fait la même chose. Ce comportement est-il un bug ou une fonctionnalité?C'est ce que la
command
commande est pour.Essayer
Cela indique au shell de contourner les alias et les fonctions.
Cette méthode est supportée par bash , zsh et ash / dash.
la source
L'alias n'est qu'un raccourci défini. Dans cet exemple, l'alias défini est la chaîne
ls
qui s'exécutels --color=auto
. Si vous ne voulez pas ce comportement, vous pouvez appeler le binaire enls
utilisant le chemin absolu.Donc, exécuter
/bin/ls
va produire une sortie sans couleur car ce n'est pas l'alias que vous avez défini.Vous pouvez également changer l'alias en quelque chose de différent ou ajouter un nouvel alias qui s'exécute
ls
sans les paramètres de couleur.la source
/bin
et/usr/bin
est arbitraire.which
pour certaines commandes:which ls
.which
(outype
), il effectue une recherche via$PATH
; vous pouvez aussi bien utiliserls
ou\ls
plutôt que spécifier le chemin.Une autre façon, en s'appuyant sur la réponse de @ uther, consiste à utiliser
$(which ...)
ou`which ...`
(à l'aide de backticks``
) pour trouver automatiquement le chemin de l'exécutable. Cela fonctionnera dansbash
:Sans aucun doute, il
\
est beaucoup plus court de préfixer la commande avec un .UPDATE : Selon Comment utiliser `which` sur une commande avec alias? , cela ne semble pas du tout fiable.
la source
`which ls`
exécuter le binaire directement.(which ls)
n’a pas fonctionné pour moi (sur Ubuntu 12.04 LTS). Et les backticks étaient difficiles, je leur ai échappé: \ ’ls \ '. Il a fallu beaucoup de montage pour y arriver :)$
?Personnellement, j'évite simplement de définir des alias avec les mêmes noms que les commandes, invoquez donc
ls
toujours la commande réelle. J'ai alias ou fonctions pour diverses combinaisons d'options telles quel
,ll
etlg
. (Cela signifie que j'ai besoinunalias ls
de mon.bashrc
ou.cshrc
.)Je trouve que les hypothèses de l'OS concernant les options que je pourrais préférer (outrepassant les hypothèses des concepteurs de la
ls
commande elle-même) correspondent rarement à mes goûts personnels. Je n'aime pas le look dels --color=auto
, et sa lisibilité peut varier considérablement entre noir sur blanc et blanc sur noir.YMMV, et les autres solutions sont bien sûr toujours intéressantes à connaître.
la source
Taper la commande en majuscule semble fonctionner
LS
, mais je ne sais pas trop pourquoi.la source
LS - display animations aimed to correct users who accidentally enter LS instead of ls.