Как unalias минус?

Мой утренний кофе еще'т не дошел мой мозг еще когда я забыл кавычки в:

alias grep="grep --color=always"

так что вместо этого я набрал:

alias grep=grep --color=always

оставив меня с:

--color=always
grep=grep

в мои псевдонимы.

Когда я пытаюсь очистка --цвет=всегда через unalias-цвет я получаю:

bash: unalias: --: invalid option
unalias: usage: unalias [-a] name [name ...]

Я попытался вырваться, цитируя и клянчит, но я не могу выяснить, как сделать unalias очистки коммандос бардак.

(Я знаю, что перезагрузка будет делать трюк, но, конечно, должен быть другой путь)

Комментарии к вопросу (2)
Решение

Вы можете избежать систем POSIX-совместимой интерпретации тире в команды путем добавления -- до каких-либо аргументов.

mtak@frisbee:~$ alias grep=grep --color=always
mtak@frisbee:~$ alias | grep color
alias --color='always'

mtak@frisbee:~$ unalias -- --color
mtak@frisbee:~$ alias | grep color
mtak@frisbee:~$

Это также работает с другими утилитами, позвольте'ы сказать, у вас есть файл с именем -бла. Если вы попытаетесь удалить его с РМ, то вы получите следующее сообщение об ошибке:

mtak@frisbee:~$ ls -- -bla
-bla
mtak@frisbee:~$ rm -bla
rm: invalid option -- 'b'
Try 'rm ./-bla' to remove the file '-bla'.
Try 'rm --help' for more information.

С помощью -- перед именем, вы удалить файл:

mtak@frisbee:~$ rm -- -bla
mtak@frisbee:~$ ls -- -bla
ls: cannot access '-bla': No such file or directory
Комментарии (2)

Просто используйте тот же трюк, который вы использовали, чтобы установить псевдоним

unalias whatever --color
Комментарии (3)

Решение

Исправить ошибку и неправильный псевдонимов вы можете просто запустить

unalias grep --color

<ч>

Понимание того, что'ы случилось

Вы даете неверную команду псевдоним грэп=грэп-цвет=всегда не в "..."в.

  • Вы можете установить две псевдонимы - цвет и команда grep; действительно, Вы можете прочитать его на левой стороне выхода (все слева от = - это псевдоним команды):

--цвет=всегда грэп=грэп

поэтому нужно сбросить обоих.

  • Почему это произошло? В ... в синоптических псевдоним означает, что можно делать нескольких свиданий в одну строку:

    псевдоним: псевдоним [-Р] [имя[=значение] ... ]

В выводе псевдоним вы можете прочитать синоптические но от человека колотить` вы можете прочитать что можно в той же строке, даже в список и присвоить в то же время:

если аргументы не заданы, псевдоним определен для каждого имени, значение которого дано. Пробел в результате следующего слова должны быть проверены на псевдоним замещения, когда псевдоним расширяется. Для каждого имени в списке аргументов, для которых не указано значение, имя и значение псевдонима печатается...

  • У вас есть проблемы, чтобы отменить первый --один цвет. Это потому, что она интерпретируется в качестве опции для "псевдонима" по вашей оболочки; чтобы избежать этого, вам нужно связываться обстреливать свой Баш, что после это не вариант.

  • На Святой Грааль для Linux: "человек", в этом случае человек Баш-это сундук, наполненный сокровищами полезно в такой ситуации. Вы можете прочитать от человека колотить`:

-- а -- сигналы окончания опции и отключает далее вариант обработки. Любые аргументы после того, как ... рассматриваются как имена файлов и аргументы. Аргумент - это эквивалентно -.

Как сообщили в остальных ответить на пути в POSIX заключается в использовании специальной комбинации символов --.

unalias -- --цвет

  • Но почему unalias грэп-цвет` работает? Я имею в виду без использования --? Так как он работал на псевдоним даже unalias-можно дать больше, чем одно имя, в одно время (опять[...]`).

unalias: unalias [-а] имя [имя ...]

Я могу дать только мое предположение: хорошие привычки программирования, чтобы написать чтении и написании программ в то же время, ниже по той же логике. Поэтому он должен быть для параметра разбор процедур псевдоним и unalias.

Что это работает, можно увидеть даже из этой команды (из командной строки открыл для этой цели), что не сотрет все ваши псевдонимы:

unalias угодно -

Последнее замечание

В разделе баги человек Баш среди немногих вещей, которые сообщили, вы можете прочитать :-)

псевдонимы путаете в некоторых использует.

Комментарии (0)