GNU/Linux >> Linux の 問題 >  >> Linux

検索コマンドのプルーニングディレクトリに問題がありますか?

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

過去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

Linux
  1. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  2. 除外ディレクトリを検索しますか?

  3. 最大のファイルまたはディレクトリを見つけますか?

  1. 検索で拡張機能を省略しますか?

  2. Linuxで検索および検索コマンドを使用してファイルを検索する

  3. Linuxの検索コマンド

  1. ワイルドカードを使用してディレクトリを再帰的に削除するにはどうすればよいですか?

  2. sftp でディレクトリをアップロードしますか?

  3. ホームディレクトリの空のディレクトリを再帰的に削除するにはどうすればよいですか?