2017-03-22 6 views
1

bashを使って、最上位のディレクトリと中間レベルのディレクトリを持つディープディレクトリ階層のターゲットファイルを検索しようとしています知られているが、その残りのディレクトリは、任意の構造のものであってもよい:トップレベルディレクトリと中間レベルのディレクトリのみが分かっているサブディレクトリでファイルを見つける方法

/A/B/[unknown]/[unknown]/.../C1/[unknown]/[unknown]/.../TargetFile 
/A/B/[unknown]/[unknown]/.../C2/[unknown]/[unknown]/.../TargetFile 
/A/B/[unknown]/[unknown]/.../C3/[unknown]/[unknown]/.../TargetFile 

はのは、私はディレクトリC2を含んでいるディレクトリツリー内のTARGETFILEへのパスをたいと言ってみましょう。私はいくつかの粗をしたが、のようなと明らかに欠陥のある試みコマンドを見つけ、:

find '/A/B' -path '/C2/*' -name 'TargetFile' 

はまたは他のいくつかのアプローチを見つけるでこれを実現する方法はありますか? (私はコマンドを見つけるのはMac OSのバージョンを使用しています。)

答えて

1

この例では、コマンドあなたが/自宅から検索を開始し、C2という名前の任意のディレクトリに含まれているTARGETFILEを探します。

find /home -path '*/C2/*' -name 'TargetFile'

+0

ありがとうございました。私の間違いは、中間レベルのディレクトリの前に*ワイルドカード文字を省略したことになりました。/C2​​/*ではなく、\ */C2/*でなければなりません。 – scolfax

関連する問題