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

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

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

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

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

5
задан 21 February 2014 в 06:27

3 ответа

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

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

type rm

вы получите,

rm is aliased to `rm -i'

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

rm is /bin/rm
0
ответ дан 21 February 2014 в 06:27
  • 1
    Спасибо. Если я хочу свой pendrive: хранит файл ключей (добавленный к /etc/crypttab) и позволяет автоматическому, вводят мою сессию Linux (старающийся не должными быть вручную вводить пароль), разве я не должен загружаться на pendrive? и прокомментируйте обычную начальную загрузку / в etc/fstab? – 3pic 11 August 2015 в 10:54

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

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

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.

0
ответ дан 21 February 2014 в 06:27

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

type fn

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

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

locate '*bin/fn'

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

0
ответ дан 21 February 2014 в 06:27

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

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