Я очень новичок в Linux. Я только что нашел команду alias, которая очень полезна, так как мне часто приходится копаться в файлах журналов

Поэтому мне нужно регулярно открывать текстовые файлы, они обычно хранятся в формате ...\somename\somename_yyyymmdd.log

Как я могу создать динамический псевдоним, который может принять имя текущей папки в качестве входных данных, а также текущую дату для создания команды, как? меньше somename_20121024.log

Спасибо

2 ответа2

1

Команда alias предназначена для создания ярлыков для регулярно выполняемых команд. Наиболее часто используемая оболочка linux, bash , не поддерживает расширение параметров в псевдонимах, что делает его немного менее подходящим для ваших целей. То, что вы пытаетесь сделать, лучше выполнить с помощью функции. Этот в bash:

lesslog() {
   local dir=$1
   local mydate=${2:-$(date +%Y%m%d)}
   if [[ -f ${dir}/${dir}_${mydate}.log ]]; then
       less ${dir}/${dir}_${mydate}.log
   else
       echo "Could not find log file: ${dir}/${dir}_${mydate}.log"
   fi
}

Эта функция будет искать файл журнала в переданном каталоге. Если вы не передадите второй параметр, он по умолчанию будет соответствовать сегодняшней дате.

1

Если вы используете Bash вы можете использовать для этого функции в вашем ~/.bashrc . Например:

function less_log() {
  less log-`date +%Y%m%d`
}
export -f less_log

export -f означает, что вы экспортируете функцию.

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