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.

bash  alias 

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.


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

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.


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"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.