Come impostare un alias per un file o una directory specifici?


9

Ci sono molti file con cui lavoro spesso. Ad esempio alcuni file di configurazione o file di registro. Diciamo che il file di registro di Apache. Spesso mi voglio tailo grepesso. Invece di scrivere:

tail -50 /var/log/apache2/error_log

Preferisco scrivere

tail -50 apachelog

In modo che apachelogfunzioni come alias per questo nome file. Ma se definisco un alias nel mio bashrc, deve essere un intero comando; (apparentemente) non può essere un alias per un nome file in modo da poterlo fare riferimento in un secondo momento. C'è un modo per raggiungere questo obiettivo?

NOTA: ho una grande varietà di file e una grande varietà di diversi comandi che voglio eseguire, quindi la creazione di funzioni o aliasses per tutte queste diverse opzioni non sarà la mia soluzione preferita.

bash  alias 

Risposte:


10

È possibile definire una variabile e utilizzare a $per richiamarne il valore:

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

Non farai meglio a Bash. In zsh, puoi definire gli alias globali, che vengono espansi ovunque sulla riga di comando:

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

Ma non lo consiglio, perché ora se mai vuoi passare la stringa apachelogcome argomento a un comando, devi ricordare di citarla.


Buona risposta, in particolare la parte "Non raccomandare questo". Sembra una ricetta per il disastro con una pessima scelta del nome alias ...
Shadur,

8

È possibile creare una funzione e scrivere il comando "indietro"

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

apachelog tail -50

2

Un alias di una directory è link. Ecco perché una possibilità è quella di creare un mucchio di collegamenti ai file di interesse in una directory. Quindi alias rtail to tail in modo che cerchi i file in quella directory.


0

Metti questo nel tuo ~ / .bashrc

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

fai una fonte ~ / .bashrc o avvia una nuova sessione bash ...

allora devi solo digitare "tailapache"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.