BASH - rmコマンドを使用する単純なスクリプトは機能しません。

BASH - rmコマンドを使用する単純なスクリプトは機能しません。

私は次の簡単なスクリプトを作成しました。

#/bin/bash
DATE=$(date +"%d_%m_%Y-%H:%M:%S")
tar -czvf /kopie/bin-$DATE.tar /bin
DATE=$(date --date="2 hours ago" +"%d-%m-%Y_%H")
rm -f /kopie/bin-$DATE*.tar

スクリプトの最後の行に問題があります。 rm コマンドは機能せず、ファイルは削除されません。 「2時間前」の日付はうまくいくので問題ありません。

ベストアンサー1

2つの方法でファイル名を指定するようです。

DATE=$(date --date="2 hours ago" +"%d-%m-%Y_%H")

たとえば、上記では年と時間の間に_があります。

ただし、作成した日付の形式は次のとおりです。

DATE=$(date +"%d_%m_%Y-%H:%M:%S")

しかし、これはまだ「恋愛」の本質的な問題を解決しません。やや2時間前」は13:00:00から12:59:59まで1秒かかるため、「2017-11-20_13*」パターンと一致しません。

私は以下を使用することを検討しますfind

 find . -name "*.tar"  -maxdepth 0 -cmin +120 -delete

2時間より古い現在のディレクトリのすべての* .tarファイルは削除する必要があります(1分の猶予期間には+119を使用)。また、-deleteこの方法が機能しているかどうかをテストするときは省略できます。

おすすめ記事