Псевдоним Bash - =… (имя псевдонима должно быть простым дефисом) не работает

14

Я хочу создать псевдоним, для cd -которого должна быть только тире ( -). Я безуспешно пытался:

alias -='cd -'     # bash: alias: -=: Invalid option
alias \-='cd -'    # bash: alias: -=: Invalid option
alias '-'='cd -'   # bash: alias: -=: Invalid option
alias '\-'='cd -'  # bash: alias: `\-': Invalid alias name.

Первые три одинаковы (только разные входные данные, но bash превращает их все в одну и ту же команду aliasс одним аргументом -=cd -), поэтому неудивительно, что сообщение об ошибке одинаково. Я предполагаю, что если аргумент начинается с тире, он анализируется как флаг, а не как псевдоним.

Можно ли вообще использовать -в качестве псевдонима имя?

leemes
источник
1
Никогда не знал оcd -
Марко Чеппи
@MarcoCeppi Я тоже, до сегодняшнего дня. Оформить заказ commandlinefu.com/commands/browse/sort-by-votes для более приятных трюков!
Leemes

Ответы:

28

С большинством команд вы можете передавать --в качестве аргумента, и все последующие аргументы обрабатываются как операнды, а не опции, даже если они начинаются с тире. aliasВстроенный в Баш признает --.

alias -- -='cd -'
Жиль "ТАК - прекрати быть злым"
источник
1
Хах! Не знал этого Хорошо, спасибо! :)
leemes