Есть две отдельные проблемы с вашим псевдонимом:
давно образуют варианты GNU (те, которые начинаются с --
, а не -
) требуют =
между именем параметра и его значение (аргумент):
- Т.е., она должна быть
--color=auto
, не --color auto
вы используете опцию -e
неправильно: его цель состоит в том, чтобы принять мультипликатор поиск моделей, с каждый-e
экземпляр требуют аргумент - в вашем случае, [-]e
непосредственно следует i
, который, следовательно, ошибочно служит в качестве аргумента -e
«s, то есть, как шаблон, в результате чего ваш истинный шаблон поиска для неправильного толкования как имя файла операнд.
Таким образом, переопределить псевдоним следующим образом:
alias g='grep --color=auto -Pi'
Update: Как tripleee's answer подразумевает, используя -e
имеет одно преимущество: она позволяет указать шаблоны, которые начинаются с -
без неправильное толкование в качестве дополнительных вариантов; таким образом, размещение -e
последнего в псевдониме даст вам это преимущество.
alias g='grep --color=auto -Pie'
Конечно, не строит -e
в псевдоним всегда оставляет вам возможность указать его по требованию, когда вызова псевдоним, который сделал бы использование нескольких-e
вариантов более intuitable.
Наконец, совет, данный @thatotherguy в комментарии стоит Heeding:
Прежде чем определить псевдоним, убедитесь, что его определение работает, как ожидается, как введены команды.
Какая версия grep вы используете, GNU или BSD? – Zulu
Псевдонимы работают, заменяя первое слово команды чем-то другим и выполняя результат. Это означает, что если полная команда 'grep -color auto -Pei qemu' не работает, то создание' alias g = 'grep -color auto-Pei'' и запуска 'g qemu' тоже не может работать, потому что они расширяются до одной и той же команды. Сначала попробуйте написать полную рабочую команду, прежде чем наложить ее на псевдонимы. –
Thorsten, ваша проблема решена, что отлично подходит для _you_. Отметка ответа, принятая (будь то моя или нет), помогает _others_ (будущим читателям). – mklement0