Come posso eseguire il comando originale con alias con lo stesso nome?


22

Un alias per il lscomando nel ~/.bashrcfile aliasato con questo:

alias ls='ls --color=auto'

quindi, quando eseguo il lscomando in terminal alias ls( ls --color=auto) viene eseguito. ma la mia domanda è: come posso eseguire l'originale lssolo e solo lsda solo senza argomenti extra e senza risolvere il problema con l'eliminazione della voce con alias? da quando elimino questa voce posso eseguirla in modo semplice ls.

Risposte:


60

È possibile ignorare gli alias con i seguenti metodi:

  1. il percorso completo del comando: /bin/ls

  2. sostituzione del comando: $(which ls)

  3. il comando incorporato: command ls

  4. virgolette doppie: "ls"

  5. virgolette singole: 'ls'

  6. una barra rovesciata: \ls


9
precisazioni aggiuntive in bash: command somethingignora entrambi gli alias E la funzione denominata something. \\something, 'something'E "something"solo bypass alias di nome something(se una funzione esiste, sarà poi chiamato). (alias precedono la funzione se entrambi esistono e nessuno è bypassato)
Olivier Dulac,

9

Sospendi l'espansione dell'alias

È inoltre possibile disabilitare temporaneamente l'espansione dell'alias per tutti gli alias, senza eliminarli:

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

Per abilitarli:

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

Si noti che l'espansione dell'alias è disabilitata per impostazione predefinita negli script, ma impostata per impostazione predefinita nelle shell interattive.


9

Puoi disabilitare un alias usando \davanti al comando.

Quindi per eseguire il lscomando originale è necessario eseguirlo utilizzando\ls

Per esempio

  • Innanzitutto creando alias di lscomando.

    [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-

    (e molti altri...)

  • Output dell'originale lsusando il \quale sovrascrivere 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 /]$ 

6

È possibile aggiungere commandprima del comando alias, ad es

command ls

Oppure esegui l'eseguibile originale combinando which

which ls

Restituirà "/ bin / ls", quindi con

`quale ls`

potresti eseguirlo direttamente.


4

È inoltre possibile eseguire il comando dalla posizione originale /bin/lsanzichéls

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.