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

22

Un alias para el lscomando en el ~/.bashrcarchivo alias con este:

alias ls='ls --color=auto'

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

αғsнιη
fuente

Respuestas:

60

Puede omitir los alias mediante los siguientes métodos:

  1. la ruta 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 invertida: \ls

terdon
fuente
99
precisiones adicionales en bash: command somethingno pasa por tanto de alias Y función de llamada something. \\something, 'something'y "something"solo omite el alias nombrado something(si existe una función, entonces se llamará). (el alias precede a la función si ambos existen y ninguno se omite)
Olivier Dulac
9

Suspender expansión de alias

También puede deshabilitar la expansión de alias para todos los alias temporalmente, 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 los scripts, pero establecida de forma predeterminada en shells interactivos.

Volker Siegel
fuente
9

Puede deshabilitar un alias usando \delante del comando.

Entonces, para ejecutar el lscomando original , debe ejecutarlo usando\ls

Por ejemplo

  • Primero creando un alias de 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-

    (y muchos más...)

  • Salida de original lsusando \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 /]$ 
g_p
fuente
6

Puede agregar commandantes del comando con alias, p. Ej.

command ls

O ejecute el ejecutable original combinando which

which ls

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

`cual ls`

Podrías ejecutarlo directamente.

P.-H. Lin
fuente
4

También puede ejecutar el comando desde su ubicación original en /bin/lslugar dels

Harris
fuente