私はCentOS 6.8を使用していますが、変数(これをfPathと呼ぶ)をファイルのファイルパスに設定しようとしています(フォルダFooを呼び出しましょう)。要点は、ユーザーがフォルダFooをどこにインストールしたのかわからないことです。正確なテキストのみを含むフォルダを見つける方法
問題は、私のfindコマンドがFooという文字列を含むすべてのフォルダを返すということです(Fooフォルダ内にFoo_logs、Foo_apps、FooMoreなどがあります)。 findコマンドでFooフォルダのパスのみを検索/返すようにしたい。
私が探して試してみましたし、私が作った最も近いの試みは、コマンドを使用している:
find -regex ./Foo
私はFooのフォルダを含むディレクトリ内ですでにだ場合は、これが唯一のFooフォルダのパスを返します。私はどのディレクトリにいても、Fooフォルダのパスだけを返すfindコマンドを適用したい。私が試みられてきた
その他のコマンドは次のとおりです。
locate Foo
find -type d -name Foo
find ./Foo
locate /Foo
locate ./Foo
find Foo | -wholename '*/Foo/*'
find ./Foo | -wholename '*/Foo/*'
find .*/Foo | -wholename '*/Foo/*'
編集:あなたが推測したよう
ありがとうございますが、これでもFoo(Foo_logsなど)という文字列を含むすべてのディレクトリが返されます。私はファイルFooのための単一のリターンを得ようとしています、ファイル名はFooと等しく、何もありません( '_'や 'log'などはありません)。 – Matt1713
Fooという名前の複数のディレクトリがある場合、それらを出力に取得します。より多くの条件を指定しない限り、あなたが探しているものをシェルが "推測"する方法はありません。 Foo_logに関しては、それが "Foo"ディレクトリ(あなたが最初に探しているようだ)の下になければ、結果に表示されません。 – yoones
ああ;そうですか。わかりやすくするために、(唯一の)Fooという名前のディレクトリ/フォルダが1つ必要です。 findコマンドで、文字列 "Foo"を含むディレクトリ内の他のものを無視する方法があります。私が前に言ったように、私はFooの中にあるFoo_logsディレクトリを望んでいません。私はちょうど出力にFooファイルパスが必要です。それは可能ですか? はFoo /\ Foo_logs FooMore 私はFooの親のファイルパスで返すように見つける欲しい: だから基本的に私はこのようなものを持っています。他の人はファイル名に "Foo"以上のものを持っています。 – Matt1713