サブディレクトリ内のファイルを検索しますか?

サブディレクトリ内のファイルを検索しますか?

親フォルダとサブフォルダのツリーがあります。サブディレクトリには同様の名前があります。サブディレクトリに保存されているファイルを検索したいです。どうすればいいですか?

たとえば、

Parent-Directory
  Sub-Directory 1
    input save bad
  Sub-Directory 2
    input save bad
  Sub-Directory 3 
    input save bad

各サブディレクトリには、input、save、badという3つのフォルダがあります。間違ったサブディレクトリにあるファイルだけを検索したいと思います。

答え1

以下を使用して、名前付きディレクトリより1レベル下のfindすべてのディレクトリで再帰検索を実行するとします。badMain Directory

find 'Main Directory'/*/bad ...rest of find options...

find検索したい内容を話していないので、残りのオプションは省略しました。

find複数のディレクトリを検索の開始点として使用する機能。ここでは、シェルによってさまざまなディレクトリパスに拡張されるファイル名ワイルドカードパターンを提供しますbad


次のディレクトリ内または下にあるすべての(一般)ファイルのパス名を印刷するとします。

find 'Main Directory'/*/bad -type f

badディレクトリに内部を調べる必要があるサブディレクトリがなく、処理する必要があるファイルの数が数千でない場合は、次のように使用できます。

'Main Directory'/*/bad/*

(最後のファイルが*処理するファイルのファイル名と一致すると仮定します)使用するユーティリティは何でも構いません。たとえば、次のようにしますls

ls 'Main Directory'/*/bad/*

答え2

あなたの質問は不明ですが、「BAD」サブディレクトリでファイルを見つけたい場合は、ホームディレクトリから次のコマンドを実行できます。

find . -maxdepth 2 -type d -name "BAD" 

または使用

find . -name "*BAD*" -type f -o -name "*BAD*" -type d

説明する

-oコマンドを発行するか、ファイルパスの後のパラメータを完全に削除するので、-nameを見つけます。ひも" -type f -o -type d 計算の検索。 (-name "悪い"-タイプ f) -o (-タイプ d).

ほとんどのユーザーは次のようなことを好みます。

find . -name  "*BAD*" -type f -o -name "*BAD*" -type d

計算結果は

find . (-name  "*BAD*" -type f) -o (-name "*BAD*" -type d)

- 名前"悪い「文字列を含む名前を検索します。

簡単に保つには:

find . -maxdepth 2 -o -name "*BAD*"

関連情報