Как я могу выполнить исходную команду, которая исказила с тем же именем?

Псевдоним для ls команда в ~/.bashrc файл исказил с этим:

alias ls='ls --color=auto'

затем, когда я работаю ls команда в терминале искажается ls(ls --color=auto) выполнения. но мой вопрос состоит в том, как я могу работать исходный ls только и только ls один без дополнительного аргумента и не решая проблему с удалением искаженной записи? с тех пор, когда я удаляю эту запись, я могу выполнить ее в простом ls.

22
задан 19 September 2014 в 04:21

5 ответов

Можно обойти псевдонимы следующими методами:

  1. полный путь команды: /bin/ls

  2. замена команды: $(which ls)

  3. встроенная команда: command ls

  4. двойные кавычки: "ls"

  5. единственные кавычки: 'ls'

  6. символ обратной косой черты: \ls

60
ответ дан 16 November 2019 в 12:08

Приостановите расширение псевдонима

, Вы могли также отключить расширение псевдонима для всех псевдонимов временно, не удаляя их:

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

, Чтобы включить им:

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

Примечание, которые искажают расширение, отключено по умолчанию в сценариях, но установлено по умолчанию в интерактивных оболочках.

9
ответ дан 16 November 2019 в 12:08

Можно отключить псевдоним с помощью \ перед командой.

Так для выполнения оригинала ls управляют, чтобы Вы выполнили его с помощью \ls

, Например

  • Первый псевдоним создания 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-
    

    (и многое другое...)

  • Вывод оригинала ls с помощью \, которые переопределяют псевдоним.

    [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
ответ дан 16 November 2019 в 12:08

Вы могли добавить command перед искаженной командой, например,

command ls

Или выполнить исходный исполняемый файл путем объединения which

which ls

, Это возвратит "/bin/ls", поэтому с

`which ls`

Вы могли выполнить его непосредственно.

6
ответ дан 16 November 2019 в 12:08

Можно также выполнить команду от ее исходного местоположения /bin/ls вместо ls

4
ответ дан 16 November 2019 в 12:08

Другие вопросы по тегам:

Похожие вопросы: