30日以上経過したユーザーファイルを消去したいと考えています。次のbashスクリプトは完璧に機能します。しかし、私は自分のエコーがあるので、出力に表示される「そのようなファイルまたはディレクトリはありません」エラーを削除しようとしています。誰か助けてくれますか?
コード:
if [[ $(find /h/$USER/*.txt -mtime +30) ]]
then
find /h/$USER/*.txt -mtime +30 -print -exec rm -f {} \;
else
echo "No txt files to del"
fi
出力:
find: stat() error /h/username/*.txt: No such file or directory
No text files to del
これは私がそれを行う方法であり、毎晩掃除したいたくさんのディレクトリで実行されます。
find /h/$USER -maxdepth 1 -name "*.txt" -type f -mtime +30 -delete
それが最善または最悪の方法であるかどうかはわかりませんが、何年も問題なく実行されており、実際には残骸の掃除機のコレクションであり、すべて同じ構文で問題はないので、本番環境には十分だと思います。
以下のコマンドを使用して、エラーを/ dev/nullにリダイレクトします。エラーは表示されません
find path -type f -daystart -mtime +30 -exec rm -rvf {} \; 2>/dev/null