親フォルダとサブフォルダのツリーがあります。サブディレクトリには同様の名前があります。サブディレクトリに保存されているファイルを検索したいです。どうすればいいですか?
たとえば、
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
すべてのディレクトリで再帰検索を実行するとします。bad
Main 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*"