Wie lege ich einen Alias ​​für eine bestimmte Datei oder ein bestimmtes Verzeichnis fest?


9

Es gibt mehrere Dateien, mit denen ich oft arbeite. Zum Beispiel einige Konfigurationsdateien oder Protokolldateien. Angenommen, die Apache-Protokolldatei. Ich will tailoder grepes oft . Anstatt zu schreiben:

tail -50 /var/log/apache2/error_log

Ich schreibe lieber

tail -50 apachelog

Das fungiert also apachelogals Alias ​​für diesen Dateinamen. Aber wenn ich einen Alias ​​in meinem definiere bashrc, muss es ein ganzer Befehl sein; Es kann (anscheinend) kein Alias ​​für einen Dateinamen sein, damit Sie später darauf verweisen können. Gibt es einen Weg, dies zu erreichen?

HINWEIS: Ich habe eine Vielzahl von Dateien und eine Vielzahl verschiedener Befehle, die ich ausführen möchte. Daher ist das Erstellen von Funktionen oder Aliasen für all diese verschiedenen Optionen nicht meine bevorzugte Lösung.

bash  alias 

Antworten:


10

Sie können eine Variable definieren und mit a $ihren Wert abrufen:

apachelog=/var/log/apache2/error_log
tail -50 $apachelog

Du wirst es in Bash nicht besser machen. In zsh können Sie globale Aliase definieren, die überall in der Befehlszeile erweitert werden:

alias -g apachelog=/var/log/apache2/error_log
tail -50 apachelog

Aber ich empfehle es nicht, denn wenn Sie die Zeichenfolge jemals apachelogals Argument an einen Befehl übergeben möchten , müssen Sie daran denken, sie zu zitieren.


Gute Antwort, insbesondere der Teil "Diesen nicht empfehlen". Das klingt nach einem Rezept für eine Katastrophe mit einer schlechten Alias-Namenswahl ...
Shadur

8

Sie können eine Funktion erstellen und Ihren Befehl "rückwärts" schreiben.

apachelog() {
  "$@" /var/log/apache2/error_log
}

apachelog tail -50

2

Ein Alias ​​zu einem Verzeichnis ist Link. Aus diesem Grund besteht eine Möglichkeit darin, eine Reihe von Links zu den gewünschten Dateien in einem Verzeichnis zu erstellen. Dann alias rtail to tail, damit es nach Dateien in diesem Verzeichnis sucht.


0

Tragen Sie dies in Ihr ~ / .bashrc ein

 alias tailapache='tail -50 /var/log/apache2/error_log'

Mach eine Quelle ~ / .bashrc oder starte eine neue Bash-Sitzung ...

dann müssen Sie nur noch "tailapache" eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.