Linux 动态别名

Linux 动态别名

我对 Linux 还很陌生。我刚刚发现 alias 命令非常有用,因为我经常需要翻阅日志文件

所以我需要定期打开文本文件,它们通常以...\somename\somename_yyyymmdd.log 格式存储

如何创建一个动态别名,可以将当前文件夹名称作为输入以及当前日期作为输入来创建类似的命令?less somename_20121024.log

谢谢

答案1

alias 命令用于为经常发出的命令创建快捷方式。最常用的 Linux Shellbash不支持别名内的参数扩展,这使得它不太适合您的目的。您尝试执行的操作最好使用函数来完成。这个位于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
}

此函数将在传递的目录中查找日志文件。如果您不传递第二个参数,它将默认为今天的日期。

答案2

如果你正在使用,Bash你可以使用功能在您的~/.bashrc这个。例如:

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

export -f意味着你出口一个函数。

相关内容