alias dinâmico do Linux

0

Sou muito novo no Linux. Acabei de encontrar o comando alias, que é muito útil, pois eu tenho que cavar com frequência arquivos de log

Então eu preciso abrir regularmente arquivos de texto eles são geralmente armazenados no formato ... \ somename \ somename_yyyymmdd.log

como eu posso criar um alias dinâmico que pode levar o nome da pasta atual como entrada, bem como a data atual para criar um comando como? menos somename_20121024.log

Obrigado

    
por chrise 24.10.2012 / 10:04

2 respostas

1

O comando alias é para criar atalhos para comandos emitidos regularmente. O shell linux mais comumente usado, bash , não suporta expansão de parâmetro dentro de aliases, o que o torna um pouco menos adequado ao seu propósito. O que você está tentando fazer é melhor realizado usando uma função. Este está em 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
}

Esta função irá procurar o arquivo de log no diretório passado. Se você não passar um segundo parâmetro, o padrão será a data de hoje.

    
por 24.10.2012 / 10:14
1

Se você estiver usando Bash , use as funções em ~/.bashrc para isso. Por exemplo:

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

export -f significa que você exporta uma função.

    
por 24.10.2012 / 10:26

Tags