Làm cách nào để đặt bí danh cho một tệp hoặc thư mục cụ thể?


9

Có một số tập tin tôi làm việc thường xuyên. Ví dụ một số tệp cấu hình hoặc tệp nhật ký. Giả sử tệp nhật ký Apache. Tôi thường muốn tailhoặc grepnó. Thay vì viết:

tail -50 /var/log/apache2/error_log

Tôi thích viết

tail -50 apachelog

Vì vậy, apachelogchức năng như một bí danh cho tên tệp này. Nhưng nếu tôi xác định một bí danh trong mình bashrc, nó cần phải là một lệnh toàn bộ; nó (dường như) không thể là bí danh cho một tên tệp để bạn có thể tham chiếu nó sau này. Có cách nào để đạt được điều này?

LƯU Ý: Tôi có nhiều loại tệp lớn và nhiều loại lệnh khác nhau mà tôi muốn chạy, do đó, việc tạo các hàm hoặc aliass cho tất cả các tùy chọn khác nhau đó sẽ không phải là giải pháp ưa thích của tôi.

bash  alias 

Câu trả lời:


10

Bạn có thể xác định một biến và sử dụng một $để gọi lại giá trị của nó:

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

Bạn sẽ không làm tốt hơn trong bash. Trong zsh, bạn có thể xác định các bí danh toàn cầu, được mở rộng ở mọi nơi trên dòng lệnh:

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

Nhưng tôi không khuyến nghị điều đó, vì bây giờ nếu bạn muốn truyền chuỗi apachelogdưới dạng đối số cho lệnh, bạn cần nhớ trích dẫn nó.


Câu trả lời hay, đặc biệt là phần "Không đề xuất phần này". Nghe có vẻ như là một công thức cho thảm họa với sự lựa chọn tên bí danh nghèo nàn ...
Shadur

8

Bạn có thể tạo một hàm và viết lệnh "ngược"

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

apachelog tail -50

2

Một bí danh cho một thư mục là liên kết. Đó là lý do tại sao một khả năng là tạo ra một loạt các liên kết đến các tệp quan tâm trong một thư mục. Sau đó, bí danh đuôi để đuôi để nó tìm kiếm các tập tin trong thư mục đó.


0

Đặt cái này trong ~ / .bashrc của bạn

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

thực hiện một nguồn ~ / .bashrc hoặc bắt đầu một phiên bash mới ...

sau đó bạn chỉ cần gõ "tailapache"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.