これで何が間違っているのかわかりません。たくさんの投稿やウェブサイトを読みましたが、まだ問題があります。
過去1日に変更されたファイルがないかシステムを確認する必要がありますが、大量のTBを搭載したドライブにマウントされているため、マウントされている特定のフォルダをスキップする必要があります。
セットアップは次のとおりです。
/usr / local /connect/内のフォルダーにマウントされたドライブがいくつかあります
/usr / local / connect / logs –>NFSにマウントします
/ usr / local / connect / DR01 –>DR共有にマウントします
このようにもう少し…
これらのディレクトリを除外する通常の検索コマンド(またはこれで機能するコマンド)を実行したいと思います。これが私が試したがうまくいかなかったものです。
探す 。 ! -path“ / usr / local / connect /” -type f -name“ * .txt” -mtime -1
探す 。 -type f -path“ / usr / local / connect /” -prune -o -name“ * .txt” -mtime -1
どちらも機能していないようです。私もさまざまな順序でそれを実行しようとしました(たとえば、-type fを最初に、または最初に行を削除するなど)。しかし、私はプルーンが進行中のパスを削除することを読みました。これは簡単なことのようです。私の間違いを見たら教えてください!よろしくお願いします!
承認された回答:
-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
が発生します。 式全体に一致するファイルの場合(つまり、-o
の両方の部分 。
-xdev
も使用できることに注意してください ファイルシステムの境界を越えないようにします。
find .
で実行する場合 現在のディレクトリが/usr/local
の場合 、それは次のようにする必要があります:
cd /usr/local &&
find . -path './connect/*' -type d -prune -o \
-name '*.txt' -type f -mtime -1 -print