Вопрос Как проверить, не изменяет ли псевдоним фактическую команду? [Дубликат]


На этот вопрос уже есть ответ:

Как узнать, есть ли псевдоним, который я делаю (в .bash_aliases) не заменяет действительную команду с тем же именем? Я не хочу делать такие вещи случайно.

(Я просмотрел «Вопросы, которые могут уже иметь ваш ответ» и «Подобные вопросы», но не видел совпадений)

Я спрашиваю, потому что я чувствую, что система не предупреждает (Ubuntu 13.10).


5
2018-02-21 02:27


происхождения




ответы:


Вы можете использовать type в терминале для этого.

Скажите, что у вас есть команда rm как псевдоним rm -i, Если вы проверите,

type rm

ты получишь,

rm is aliased to `rm -i'

Если у вас нет псевдонима для rm ты получишь,

rm is /bin/rm

9
2018-02-21 02:34



Это не помогает в таких командах, как locate который кажется мне псевдонимом для более мощного find но я мог ошибаться. Я нахожусь в поиске, чтобы найти разницу - MishaP
@MishaP type locate возвращает "locate is /usr/bin/locate". Видеть страница руководства из locate для большего. Я не понимал, почему вы считаете это псевдонимом. - souravc
вы правы, это не так. Я привык использовать find, поэтому, когда я увидел, что кто-то использует locate Я просто предположил, что это был системный псевдоним по умолчанию ll, Когда у меня будет немного дополнительного времени, я приеду, чтобы попытаться найти разницу. Надеюсь, это не просто (по существу) дубликаты команд. Это действительно сосать .... - MishaP


Предупреждение: этот метод требует, чтобы вы фактически выполняли команду, в отличие от других ответов, которые «сообщают» о состоянии оболочки. Вы никогда не сможете быть уверены до исполнения, не так ли?

В вашей оболочке введите

set -x

Ты увидишь + ... линии по мере выполнения оболочки. Например, когда я запускаю ls, который обычно ls --color=auto на Ubuntu, я получаю следующее:

$ ls ~
+ ls --color=auto /home/rctay
bin         ext    foo.py      Music     shared     tmp-www                tmux-client-32280.log
...

Чтобы отключить его, запустите set +x,


3
2018-06-29 02:34





Перед определением псевдонима для некоторой команды вызовите его fn, бег type по имени команды:

type fn

Если команды нет, type вернется not found,

После того, как вы определили псевдоним, вы можете использовать locate для проверки возможных конфликтов:

locate '*bin/fn'

Это выглядит в любом месте системы для команды с именем fn в каталоге, имя которого указывает, что оно является исполняемым. Обратите внимание, что это не то же самое, что type потому как locate будет выглядеть bin каталоги, которые могут быть недоступны по умолчанию.


1
2018-02-21 02:35