¿Cómo puedo ejecutar el comando original que alias con el mismo nombre?

20

Un alias para el comando ls en el archivo ~/.bashrc con alias con este:

alias ls='ls --color=auto'

luego, cuando ejecuto el comando ls en el terminal con alias ls ( ls --color=auto ) se ejecuta. pero mi pregunta es ¿cómo puedo ejecutar% ls original y solo ls solo sin argumentos adicionales y sin resolver el problema de eliminar entradas con alias? ya que cuando borro esta entrada puedo ejecutarla en simple ls .

    
pregunta αғsнιη 17.09.2014 - 15:41

5 respuestas

53

Puede omitir alias mediante los siguientes métodos:

  1. la ruta de acceso completa del comando: /bin/ls

  2. sustitución de comando: $(which ls)

  3. el comando incorporado: command ls

  4. comillas dobles: "ls"

  5. comillas simples: 'ls'

  6. un carácter de barra diagonal inversa: \ls

respondido por el terdon 17.09.2014 - 15:58
9

Suspender expansión de alias

También podría desactivar temporalmente la expansión de alias para todos los alias, sin eliminarlos:

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

Para habilitarlos:

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

Tenga en cuenta que la expansión de alias está deshabilitada de forma predeterminada en las secuencias de comandos, pero establecida de manera predeterminada en shells interactivos.

    
respondido por el Volker Siegel 17.09.2014 - 16:30
9

Puede desactivar un alias usando \ delante del comando.

Entonces, para ejecutar el comando original ls necesitas ejecutarlo usando \ls

Por ejemplo,

  • Primero creando el alias del comando ls .

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

    (y muchos más ...)

  • Salida de ls original usando \ que anula el 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 /]$ 
    
respondido por el g_p 17.09.2014 - 15:46
6

Puedes agregar command antes del comando con alias, por ejemplo,

command ls

O ejecuta el ejecutable original combinando which

which ls

Devolverá "/ bin / ls", por lo tanto, con

'which ls'

podrías ejecutarlo directamente.

    
respondido por el P.-H. Lin 17.09.2014 - 15:51
4

También puede ejecutar el comando desde su ubicación original /bin/ls en lugar de ls

    
respondido por el Harris 17.09.2014 - 15:49

Lea otras preguntas en las etiquetas