Вы не можете использовать такой псевдоним. Псевдонимы представляют собой одиночные имена и вызываются без каких-либо аргументов (. Все аргументы передаются командам с псевдонимами напрямую без изменений ).
Мое предложение для решения проблемы, с которой вы столкнулись, состоит в том, чтобы использовать функцию и только затем присваивать ей псевдоним ls
, вот так:
_ls() {
if [[ "$1" == "-a" ]]; then
shift
ls -A "$@"
else
ls "$@"
fi
}
alias ls=_ls
Обратите внимание, что таким образом будут затронуты только ls -a
(-a
должен быть один на первой позиции ), поэтому вы все еще можете получить доступ к «стандартному» -a
, поместив его в другие места или собрав его с помощью другие варианты:
ls -a # modified '-a'
ls -a -l /tmp # modified '-a'
ls -al # not modified
ls -l -a /tmp # not modified
У меня была эта проблема, когда компилятор не мог найти as
.
Я нашел его, запустив strace g++
и проанализировав вывод.
Можете ли вы запустить as
для целевой платформы (т.е. руки в вашем случае )?