2

このシェル スクリプトを維持する必要があります。

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

しかし、見つからないため実行できませんgdate。このコードは、ちょうど 30 日前のログ ディレクトリをクリアするためのものです。

4

2 に答える 2

7

G NUですdate。BSD 関連のシステムで呼び出さgdateれ、独自のdate.


私は 90% が Mac のオフィスで Linux に取り組んでおり、かなりの数の同僚のスクリプトがgsedや などを参照していgdateます。スイッチをオンにしてこれを適切に修正できなかった場合、$OSTYPE最終的に降伏してこれを実行しました。

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

これは へのシンボリックリンクgdateですdate

GNU/Linuxにインストールされているバージョン明らかにGNUバージョンであるgdateためgsed、これは非常に安全ですgtargmake

もちろん、コマンドをエイリアスすることもできますが、これによりユーザーとシェルが引き継がれます。事実上、プログラム全体をエイリアシングしています。

于 2016-03-23T13:20:27.590 に答える
6

Linux 以外の *nix システムでは、GNU フレーバーのユーティリティがプレフィックスg( gmakegtarなど) を付けてインストールされるのがかなり一般的です。この場合、これは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
于 2013-03-11T03:41:32.147 に答える