我想要一种访问文件的快捷方式,我通常在 bash 中使用。例如,查看日志。现在我使用:
less /var/log/user/server.log
less /var/log/user/server2.log
我想要捷径,
less server.log
less server2.log
我在 .bash_profile 中尝试了这个变体,但是某处出现错误:
less() { if [[ $@ == "server.log" ]]; then command less /var/log/user/server.log; else command less "$@"; fi; }
答案1
你可以符号链接像这样的文件:
ln -s /var/log/user/server.log server.log
ln -s /var/log/user/server2.log server2.log
然后你可以对这些文件做任何你想做的事情:
less server.log
tail -f server2.log
答案2
serverlog=/var/log/user/server.log
serverlog2=/var/log/user/server2.log
less $serverlog
答案3
我感到无聊,所以我为你编写了这个 bash shell 函数:
less()
{
OIFS="$IFS"; IFS=:
lesspath=('' $LESSPATH)
IFS="$OIFS"
for arg ; do
for path in "${lesspath[@]}" ; do
file="${path:+$path/}${arg}"
if [[ -e "${file}" ]] ; then
command less "${file}"
continue 2
fi
done
command less "${arg}"
done
}
把这个 shell 函数放入你的.bashrc
设置中,LESSPATH=/var/log/user
现在你就可以按照你想要的方式运行 less 了。
您可以LESSPATH
通过用冒号分隔来添加其他路径,就像其他 PATH 环境变量一样。因此,如果您设置了LESSPATH=/var/log:/var/log/user
,您也可以less syslog
从任何地方轻松运行以轻松查看/var/log/syslog
。
答案4
要使用别名,您也可以做类似的事。
将其添加到 .bashrc
function lss { less "$1"; }
export lss
alias lf='echo /var/log/syslog'
跑步
. ~/.bashrc
现在你可以这样做:
less $(lf)
或者
lss $(lf)