存在しないディレクトリで「検索」を使用する

存在しないディレクトリで「検索」を使用する

/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/nullstderrをにリダイレクトすることを意味します/dev/null

  • /dev/null必要な入力を受け入れて削除する空のデバイスです。すべての出力を抑制するために使用できます。

答え3

print0ここでは役に立ちませんxargs -r 0find組み込みの機能があります。

[ -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

関連情報