Как установить псевдоним для определенного файла или каталога?


9

Есть несколько файлов, с которыми я часто работаю. Например, некоторые файлы конфигурации или файлы журнала. Допустим, файл журнала Apache. Я часто хочу tailили grepэто. Вместо того чтобы писать:

tail -50 /var/log/apache2/error_log

Я предпочитаю писать

tail -50 apachelog

Так что это apachelogфункционирует как псевдоним для этого имени файла. Но если я определю псевдоним в моем bashrc, это должна быть целая команда; это (очевидно) не может быть псевдонимом для имени файла, чтобы вы могли ссылаться на него позже. Есть ли способ добиться этого?

ПРИМЕЧАНИЕ. У меня есть большое количество файлов и большое количество различных команд, которые я хочу выполнить, поэтому создание функций или псевдонимов для всех этих различных параметров не будет моим предпочтительным решением.

bash  alias 

Ответы:


10

Вы можете определить переменную и использовать $для вызова ее значения:

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

Вы не будете делать лучше в Bash. В zsh вы можете определить глобальные псевдонимы, которые развернуты везде в командной строке:

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

Но я не рекомендую это делать, потому что теперь, если вы когда-нибудь захотите передать строку apachelogв качестве аргумента команде, вам нужно не забывать заключать ее в кавычки.


Хороший ответ, особенно часть «Не рекомендую это». Это звучит как рецепт катастрофы с плохим выбором псевдонима ...
Шадур

8

Вы можете создать функцию и написать свою команду «назад»

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

apachelog tail -50

2

Псевдоним для каталога является ссылкой. Вот почему одна возможность - создать связку ссылок на интересующие файлы в одном каталоге. Затем псевдоним rtail к tail, чтобы он искал файлы в этом каталоге.


0

Поместите это в ваш ~ / .bashrc

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

сделать исходный код ~ / .bashrc или начать новый сеанс bash ...

тогда вам просто нужно набрать "tailapache"

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.