/my-directory
存在しない場合は自動的に何もしないようにする簡単な方法はありますか?
find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
バージョン:
- 検索: GNU findutils 4.5.10
- バッシュ 4.2.53
答え1
find
を使用してエラー報告をキャンセルし2>/dev/null
たり、コマンドの実行を完全に回避したりできます。
test -d /my-directory && find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
少しの最適化ときれいなコードとして、いくつかのバージョン(あなたのバージョンを含む)ではfind
これを直接行うことができます。rm
test -d /my/directory && find /my-directory -type f -mtime +14 -delete
答え2
あなたはそれを使用することができます、
find /my-directory -type f -mtime +14 -print0 2>/dev/null | xargs -r0 rm
説明する:
2> /dev/null
stderrをにリダイレクトすることを意味します/dev/null
。
/dev/null
必要な入力を受け入れて削除する空のデバイスです。すべての出力を抑制するために使用できます。
答え3
print0
ここでは役に立ちませんxargs -r 0
。find
組み込みの機能があります。
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -exec rm {} +
または@terdonは、GNU findを使用するときにこのバリアントを使用することを提案します。
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -delete