web-dev-qa-db-fra.com

Comment puis-je exécuter la commande d'origine qui alias avec le même nom?

Un alias pour la commande lsdans le fichier ~/.bashrc avec le même alias:

alias ls='ls --color=auto'

ensuite, lorsque je lance la commande lsdans le terminal alias lsname __ (ls --color=auto) s'exécute. mais ma question est: comment puis-je exécuter l'original lsuniquement et uniquement lsseul sans argument supplémentaire et sans résoudre le problème de suppression de l'entrée avec alias? depuis que je supprime cette entrée, je peux l'exécuter en simple lsname__.

22
αғsнιη

Vous pouvez contourner les alias par les méthodes suivantes:

  1. le chemin complet de la commande: /bin/ls

  2. substitution de commande: $(which ls)

  3. la commande intégrée: command ls

  4. guillemets doubles: "ls"

  5. guillemets simples: 'ls'

  6. une barre oblique inverse: \ls

58
terdon

Vous pouvez désactiver un alias à l'aide de \ devant la commande.

Donc, pour exécuter la commande lsd'origine, vous devez l'exécuter à l'aide de \ls

Par exemple

  • Créez d'abord l'alias de la commande lsname__.

    [guru@guru-Aspire-5738 /]$ alias ls='ls -l'
    [guru@guru-Aspire-5738 /]$ ls
    total 96
    drwxr-xr-x   2 root root  4096 Sep  3 18:31 bin
    drwxr-xr-x   5 root root  4096 Sep 17 02:51 boot
    drwxr-xr-x   2 root root  4096 Sep  3 22:17 cdrom
    drwxr-xr-x  17 root root  4520 Sep 17 21:11 dev
    drwxr-xr-x 153 root root 12288 Sep 17 21:11 etc
    drwxr-xr-x   3 root root  4096 Sep  3 22:17 home
    lrwxrwxrwx   1 root root    37 Sep  8 21:31 initrd.img -> /boot/initrd.img-3.2.0-68-generic-pae
    lrwxrwxrwx   1 root root    36 Sep  3 22:18 initrd.img.old -> boot/initrd.img-3.2.0-
    

    (et beaucoup plus...)

  • Sortie de lsd'origine à l'aide de \ qui remplace l'alias.

    [guru@guru-Aspire-5738 /]$ \ls
    bin    etc         lib     opt   sbin     tmp      vmlinuz.old
    boot   home        lost+found  proc  selinux  usr
    cdrom  initrd.img      media       root  srv      var
    dev    initrd.img.old  mnt     run   sys      vmlinuz
    [guru@guru-Aspire-5738 /]$ 
    
9
g_p

Suspendre l'expansion des alias

Vous pouvez également désactiver temporairement le développement d'alias pour tous les alias, sans les supprimer:

$ shopt -u expand_aliases
$ command -v ls
/bin/ls

Pour les activer:

shopt -s expand_aliases
$ command -v ls
alias ls='ls --color=auto'

Notez que le développement d'alias est désactivé par défaut dans les scripts, mais défini par défaut dans les shells interactifs.

9
Volker Siegel

Vous pouvez ajouter command avant la commande avec alias, par exemple.

command ls

Ou exécutez l'exécutable d'origine en combinant which

which ls

Il retournera "/ bin/ls", donc avec

`qui ls`

vous pouvez l'exécuter directement.

6
P.-H. Lin

Vous pouvez également exécuter la commande à partir de son emplacement d'origine, /bin/ls au lieu de ls.

4
Harris