There are several files I work with often. For instance some configuration files or log files. Let's say the Apache log file. I often want to tail
or grep
it. Instead of writing:
tail -50 /var/log/apache2/error_log
I prefer to write
tail -50 apachelog
So that apachelog
functions as an alias for this filename. But if I define an alias in my bashrc
, it needs to be a whole command; it (apparently) can not be an alias for a filename so that you can reference it later. Is there a way to achieve this?
NOTE: I have a large variety of files and a large variety of different commands I want to run, so creating functions or aliasses for all of those different options will not be my preferred solution.
Best Answer
You can define a variable, and use a
$
to recall its value:You're not going to do better in bash. In zsh, you can define global aliases, that are expanded everywhere on the command line:
But I don't recommend it, because now if you ever want to pass the string
apachelog
as an argument to a command, you need to remember to quote it.