Wie erstelle ich Aliase mit „überlappenden“ Namen für vorhandene Befehle?

Wie erstelle ich Aliase mit „überlappenden“ Namen für vorhandene Befehle?

Angenommen, ich möchte einen Alias ​​namens ssfür den Befehl erstellen sudo -s. Da es sich jedoch bereits um einen vorhandenen Befehl handelt, möchte ich einen weiteren Alias ​​namens für den Befehl sserstellen .sstss

Wenn Sie nur die normalen Befehlsnamen verwenden, ist dies nicht möglich, da Aliase:

  1. Sind nicht in einer Weise eingestellt, die die Reihenfolge respektiert, und
  2. Referenzieren Sie andere Aliase, anstatt nur auf Befehle zu verweisen

Wenn ich also Folgendes versuche:

alias sst='ss'
alias ss='sudo -s'

Das Ausführen des Befehls sstführt zum Ausführen von sudo -s, was nicht meine Absicht ist.

Wie kann das erreicht werden?

Antwort1

Damit das oben genannte funktioniert, müssen Sie auf den absoluten Pfad des Befehls verweisen, den Sie ausführen möchten.

Dies kann folgendermaßen erfolgen:

alias sst='/usr/bin/ss'
alias ss='sudo -s

Man kann jedoch nicht immer sicher sein, ssdass man sich an diesem Ort befindet, daher wäre ein zuverlässigerer Ansatz:

alias sst='$(which ss)'
alias ss='sudo -s

Jetzt funktioniert das oben genannte wie erwartet, wobei der Befehl ssausgeführt sudo -swird .sstss

verwandte Informationen