gdate在这个shell脚本中意味着什么?

时间:2013-03-11 03:34:50

标签: linux bash redhat

我需要维护这个shell脚本:

export DAYDAY=`gdate --date "30 days ago" +"%Y%m%d"` 
if [ -d $TMP/AA/$DAYDAY]; then
    rm -r $TMP/AA/$DAYDAY  
fi

但是我无法运行它,因为它无法找到gdate;此代码用于清除正好30天的日志目录。

2 个答案:

答案 0 :(得分:5)

在除Linux以外的* nix系统上,以g为前缀(例如gmakegtar等)安装实用程序的GNU风格是相当常见的。在这种情况下,它可能是指date命令的GNU风格。因此,既然您使用的是Linux,只需将其更改为date

即可
export DAYDAY=`date --date "30 days ago" +"%Y%m%d"` 
if [ -d $TMP/AA/$DAYDAY]; then
    rm -r $TMP/AA/$DAYDAY  
fi

答案 1 :(得分:3)

我在90%Mac办公室的Linux上工作,很多同事的脚本引用gsedgdate之类的东西。我无法通过$OSTYPE上的开关正确解决这个问题,我最终投降并做到了这一点:

sudo ln -s $(which date) /bin/gdate

此符号链接gdatedate

这是非常安全的,因为对于GNU / Linux gdate(或gsedgtargmake) >显然是 GNU版本。

当然,您也可以为命令添加别名,但这会占用用户和shell。它实际上是整个程序的别名。