Como definir um alias para um arquivo ou diretório específico?

9

Existem vários arquivos com os quais trabalho frequentemente. Por exemplo, alguns arquivos de configuração ou arquivos de log. Digamos o arquivo de log do Apache. Muitas vezes eu quero tailou grepisso. Em vez de escrever:

tail -50 /var/log/apache2/error_log

Eu prefiro escrever

tail -50 apachelog

Portanto, isso apachelogfunciona como um alias para esse nome de arquivo. Mas se eu definir um alias no meu bashrc, ele precisará ser um comando inteiro; (aparentemente) não pode ser um alias para um nome de arquivo, para que você possa fazer referência posteriormente. Existe uma maneira de conseguir isso?

NOTA: Eu tenho uma grande variedade de arquivos e uma grande variedade de comandos diferentes que desejo executar, portanto, criar funções ou aliasses para todas essas opções diferentes não será minha solução preferida.


fonte

Respostas:

10

Você pode definir uma variável e usar a $para recuperar seu valor:

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

Você não vai se sair melhor no bash. No zsh, você pode definir aliases globais, que são expandidos em todos os lugares na linha de comando:

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

Mas não recomendo, porque agora, se você quiser passar a string apachelogcomo argumento para um comando, lembre-se de citá-la.

Gilles 'SO- parar de ser mau'
fonte
Boa resposta, especialmente a parte "Não recomendo isso". Isso soa como uma receita para o desastre com uma escolha nome de alias pobre ...
Shadur
8

Você pode criar uma função e escrever seu comando "para trás"

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

apachelog tail -50
Glenn Jackman
fonte
2

Um alias para um diretório é link. É por isso que uma possibilidade é criar um monte de links para os arquivos de interesse em um diretório. Em seguida, adicione o atalho para procurar arquivos nesse diretório.

Roman B.
fonte
0

Coloque isso no seu ~ / .bashrc

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

faça uma fonte ~ / .bashrc ou inicie uma nova sessão bash ...

então você só precisa digitar "tailapache"

Rainer Bendig
fonte