Bagaimana cara mengatur alias untuk file atau direktori tertentu?


9

Ada beberapa file yang sering saya kerjakan. Misalnya beberapa file konfigurasi atau file log. Katakanlah file log Apache. Saya sering ingin tailatau grepitu. Alih-alih menulis:

tail -50 /var/log/apache2/error_log

Saya lebih suka menulis

tail -50 apachelog

Sehingga apachelogberfungsi sebagai alias untuk nama file ini. Tetapi jika saya mendefinisikan alias di saya bashrc, itu perlu seluruh perintah; itu (tampaknya) tidak bisa menjadi alias untuk nama file sehingga Anda bisa referensi nanti. Apakah ada cara untuk mencapai ini?

CATATAN: Saya memiliki berbagai macam file dan beragam besar perintah berbeda yang ingin saya jalankan, jadi membuat fungsi atau alias untuk semua opsi yang berbeda itu tidak akan menjadi solusi yang saya sukai.

bash  alias 

Jawaban:


10

Anda bisa mendefinisikan variabel, dan menggunakan a $untuk mengingat nilainya:

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

Anda tidak akan melakukan yang lebih baik di bash. Di zsh, Anda dapat mendefinisikan alias global, yang diperluas di mana-mana di baris perintah:

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

Tapi saya tidak merekomendasikannya, karena sekarang jika Anda ingin meneruskan string apachelogsebagai argumen ke perintah, Anda perlu ingat untuk mengutipnya.


Jawaban yang bagus, terutama bagian "Jangan rekomendasikan ini". Itu terdengar seperti resep untuk bencana dengan pilihan nama alias yang buruk ...
Shadur

8

Anda dapat membuat fungsi dan menulis perintah Anda "mundur"

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

apachelog tail -50

2

Alias ​​ke direktori adalah tautan. Itu sebabnya satu kemungkinan adalah membuat banyak tautan ke file-file yang menarik di satu direktori. Kemudian alias rtail to tail sehingga mencari file dalam direktori itu.


0

Letakkan ini di ~ / .bashrc Anda

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

lakukan sumber ~ / .bashrc atau mulai sesi bash baru ...

maka Anda hanya perlu mengetik "tailapache"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.