これに関して、私が何を間違っているのかわかりません。多くの投稿やウェブサイトを読んだが、まだ問題があります。
前日に変更されたファイルがあるかどうかを確認する必要があります。マウントされた特定のフォルダは、テラバイトのサイズの大きいドライブにマウントされているため、スキップする必要があります。
設定は次のとおりです。 /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