Я хочу короткий способ доступа к файлам, которые я обычно использую в 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; }

Спасибо за совет!

4 ответа4

5

Вы можете использовать символическую ссылку на файлы так:

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
0

Мне стало скучно, поэтому я написал эту функцию оболочки bash для вас:

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
}

Поместите эту функцию оболочки в ваш .bashrc , установите LESSPATH=/var/log/user и теперь вы можете запускать меньше, чем хотите.

Вы можете добавить другие пути к LESSPATH , разделив их двоеточиями, как и другие переменные среды PATH. Итак, если вы установите LESSPATH=/var/log:/var/log/user , вы также можете легко запустить less syslog из любого места, чтобы легко увидеть /var/log/syslog .

0
serverlog=/var/log/user/server.log
serverlog2=/var/log/user/server2.log

less $serverlog
0

Чтобы использовать псевдонимы, вы можете сделать что-то вроде этого тоже ..

добавить это в .bashrc

function lss { less "$1"; }
export lss
alias lf='echo /var/log/syslog'

бежать

. ~/.bashrc

Теперь вы можете сделать:

less $(lf)

или же

lss $(lf)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .