Псевдоним для ls
команда в ~/.bashrc
файл исказил с этим:
alias ls='ls --color=auto'
затем, когда я работаю ls
команда в терминале искажается ls
(ls --color=auto
) выполнения. но мой вопрос состоит в том, как я могу работать исходный ls
только и только ls
один без дополнительного аргумента и не решая проблему с удалением искаженной записи? с тех пор, когда я удаляю эту запись, я могу выполнить ее в простом ls
.
Можно обойти псевдонимы следующими методами:
полный путь команды: /bin/ls
замена команды: $(which ls)
встроенная команда: command ls
двойные кавычки: "ls"
единственные кавычки: 'ls'
символ обратной косой черты: \ls
, Вы могли также отключить расширение псевдонима для всех псевдонимов временно, не удаляя их:
$ shopt -u expand_aliases
$ command -v ls
/bin/ls
, Чтобы включить им:
shopt -s expand_aliases
$ command -v ls
alias ls='ls --color=auto'
Примечание, которые искажают расширение, отключено по умолчанию в сценариях, но установлено по умолчанию в интерактивных оболочках.
Можно отключить псевдоним с помощью \
перед командой.
Так для выполнения оригинала 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 /]$
Вы могли добавить command
перед искаженной командой, например,
command ls
Или выполнить исходный исполняемый файл путем объединения which
which ls
, Это возвратит "/bin/ls", поэтому с
`which ls`
Вы могли выполнить его непосредственно.
Можно также выполнить команду от ее исходного местоположения /bin/ls
вместо ls