Disons que j'ai l'alias suivant dans bash - alias ls='ls --color=auto'
- et je veux appeler le ls
ordinaire sans options. La seule façon de le faire est de supprimer l'alias, d'exécuter la commande puis de nouveau l'alias? Ou il existe une astuce astucieuse ou une solution de contournement?
Vous pouvez également préfixer une barre oblique inverse pour désactiver l'alias: \ls
Modifier: D'autres façons de faire de même incluent:
Utilisez "commande": command ls
selon Mikel .
Utilisez le chemin complet: /bin/ls
selon ther .
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
.
L'alias n'est qu'un raccourci défini. Dans cet exemple, l'alias défini est la chaîne ls
, qui exécute ls --color=auto
. Si vous ne souhaitez pas ce comportement, vous pouvez appeler le binaire ls
en utilisant le chemin absolu.
Donc, exécuter juste /bin/ls
produira 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 exécute simplement ls
sans les paramètres de couleur.
Une autre façon, en s'appuyant sur la réponse de @ uther, est d'utiliser $(which ...)
ou `which ...`
(en utilisant des raccourcis ``
) pour trouver automatiquement le chemin de l'exécutable. Cela fonctionnera dans bash
:
$(which ls)
`which ls`
Sans aucun doute, il suffit de préfixer la commande avec un \
est beaucoup plus court.
[~ # ~] mise à jour [~ # ~] : Selon Comment utiliser `which` sur une commande aliasée? , cela ne semble pas du tout fiable.
Personnellement, j'évite simplement de définir des alias avec les mêmes noms que les commandes, donc ls
invoque toujours la commande réelle. J'ai des alias ou des fonctions pour diverses combinaisons d'options comme l
, ll
et lg
. (Cela signifie que j'ai besoin de unalias ls
dans mon .bashrc
ou .cshrc
.)
Je trouve que les hypothèses du système d'exploitation sur les options que je pourrais préférer (outrepassant les hypothèses des concepteurs de la commande ls
elle-même) correspondent rarement à mes goûts personnels. Je déteste le look de ls --color=auto
, et sa lisibilité peut varier considérablement entre le noir sur blanc et le blanc sur noir.
YMMV, et les autres solutions sont bien sûr encore bonnes à connaître.
Taper la commande en majuscule semble fonctionner, comme LS
, mais je ne sais pas vraiment pourquoi.