Alias ​​Bash - =… (nazwa aliasu powinna być prostą kreską) nie działa

14

Chcę utworzyć alias, dla cd -którego powinna być tylko myślnik ( -). Próbowałem bez powodzenia:

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.

Poprzednie trzy są takie same (tylko inne dane wejściowe, ale bash zamienia je wszystkie w to samo polecenie aliasza pomocą jednego argumentu -=cd -), więc nic dziwnego, że komunikat o błędzie jest taki sam. Domyślam się, że jeśli argument zaczyna się od myślnika, jest on analizowany jako flaga, a nie nazwa aliasu.

Czy można w ogóle użyć -nazwy aliasu?

leemes
źródło
1
Nigdy nie wiedziałem ocd -
Marco Ceppi
@MarcoCeppi Ja też, do dziś. Zamówienie commandlinefu.com/commands/browse/sort-by-votes więcej sztuczek ładne!
leemes

Odpowiedzi:

28

W przypadku większości poleceń można przekazać --jako argument, a wszystkie kolejne argumenty są traktowane jako operandy, a nie opcje, nawet jeśli zaczynają się od myślnika. aliasWbudowane w bash rozpoznaje --.

alias -- -='cd -'
Gilles „SO- przestań być zły”
źródło
1
Hah! Nie wiedziałem tego. Fajne dzięki! :)
leemes