FINDコマンドクリーンアップディレクトリの問題

FINDコマンドクリーンアップディレクトリの問題

これに関して、私が何を間違っているのかわかりません。多くの投稿やウェブサイトを読んだが、まだ問題があります。

前日に変更されたファイルがあるかどうかを確認する必要があります。マウントされた特定のフォルダは、テラバイトのサイズの大きいドライブにマウントされているため、スキップする必要があります。

設定は次のとおりです。 /usr/local/connect/内の/usr/local/connect/logsフォルダに複数のドライブをマウントしました。 --> NFSにマウントしました。 /usr/local/connect/DR01 --> DRにマウントしました。また、そのような部分を共有しました...

私はこれらのディレクトリ(またはこの目的に適したもの)を除いて通常のfindコマンドを実行したいと思います。私は試しましたが、うまくいかないようです。

探す。 ! -path "/usr/local/connect/" -type f -name "*.txt" -mtime -1

探す。 -type f -path "/usr/local/connect/" -prune -o -name "*.txt" -mtime -1

これらのどれも機能しないようです。私もこの操作を別の順序で試しました(たとえば、-fを最初に入力するか、最初にトリミングするなど)。しかし、私は剪定がフォワードパスを削除することを読んだ。これは簡単にできることのようです。私の間違いを見たら教えてください!よろしくお願いします!

ベストアンサー1

-path "/usr/local/connect/"正確なファイルパスでのみ一致します/usr/local/connect/find .すべてのパスは次に終わるので、これは決して一致しません。.

だからあなたは欲しいでしょう:

find / -path '/usr/local/connect/*' -type d -prune -o \
       -name '*.txt' -type f -mtime -1 -print

これも-print重要です。それがなければ、完全な-print式(したがって2つの部分-o)に一致するファイルの暗黙的な存在があります。

これを使用して、-xdevファイルシステムの境界を超えないようにすることもできます。

find .現在のディレクトリがあるときに実行するには、/usr/local次のようにする必要があります。

cd /usr/local &&
  find . -path './connect/*' -type d -prune -o \
         -name '*.txt' -type f -mtime -1 -print

おすすめ記事