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

9

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

tail -50 /var/log/apache2/error_log

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

tail -50 apachelog

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

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


источник

Ответы:

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"

Райнер Бендиг
источник