Bash-Alias ​​- =… (Aliasname sollte ein einfacher Gedankenstrich sein) funktioniert nicht

14

Ich möchte einen Alias ​​erstellen, für cd -den es sich nur um einen Bindestrich handeln soll ( -). Ich habe es erfolglos versucht:

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.

Die ersten drei sind identisch (nur unterschiedliche Eingaben, aber Bash verwandelt sie alle aliasmit einem einzigen Argument in denselben Befehl -=cd -). Es ist daher nicht verwunderlich, dass die Fehlermeldung dieselbe ist. Ich denke, wenn das Argument mit einem Bindestrich beginnt, wird es als Flag und nicht als Aliasname analysiert.

Ist es überhaupt möglich, -einen Aliasnamen zu verwenden?

Leemes
quelle
1
Ich wusste cd -
Marco Ceppi
@MarcoCeppi Ich auch nicht, bis heute. Kasse commandlinefu.com/commands/browse/sort-by-votes für mehr nette Tricks!
Leemes

Antworten:

28

Bei den meisten Befehlen können Sie --als Argument übergeben, und alle nachfolgenden Argumente werden als Operanden und nicht als Optionen behandelt, selbst wenn sie mit einem Bindestrich beginnen. Die aliaseingebaute Bash erkennt --.

alias -- -='cd -'
Gilles 'SO - hör auf böse zu sein'
quelle
1
Hah! Wusste das nicht. Cool, danke! :)
leemes