Обратная косая черта будет подавлять расширение псевдонима, т.е. она выполняет исходную команду и следит за тем, чтобы версия псевдонима не запускалась. Скрипты могут неосознанно запускаться с расширением псевдонимов, когда система установила shopt -s expand_aliases(только BASH) или если она выполняется с использованием source.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
Некоторым системным администраторам нравится ставить обратную косую черту во всем в качестве превентивной меры против побочных эффектов псевдонимов, просто на случай, если они были непреднамеренно псевдонимом где-то еще, и псевдоним расширяется, как объяснено ранее. Например, если система alias dirname='dirname -z'где-то установила это и условие позволяет раскрыть псевдоним, то, к сожалению, dirname -zвместо этого будет вызываться сценарий, который пытается вызвать dirname , что не было предназначено для сценария.
Если есть уверенность, что такого псевдонима не существует, мы можем удалить весь обратный слеш, и он должен работать нормально.
В качестве альтернативы можно использовать commandвместо версии с обратной косой чертой, чтобы подавить псевдоним. Таким образом, вместо \dirnameможно использовать command dirname, что может выглядеть более читабельным. (Для встроенных команд, таких как cd, следует использовать builtinвместо). Я предпочитаю это вместо этого, поскольку он также обходит функцию с тем же именем, что и любые псевдонимы.