2016-04-25 7 views
5

与えられた私はUNIX:部分パス

find . -name "file_name" 

を使用してファイルを検索する方法を知っている。しかし、私はパスの一部与えられていた場合、「folder1の/ subfolder2 /」と言った場合、完全なパスを見つけるために検索するコマンドを使用する方法、この部分的なパスを含む完全なパスをすべて取得するにはどうすればよいですか?

部分パス:folder1/subfolder2/

願望結果:

/bob/folder1/subfolder2/yo/ 
/sandy/folder1/subfolder2/hi/ 
+0

の最初の試合の後に再帰的にしないでくださいユーティリティ自体も見つかったファイルも絶対パスについて何も知っていないので、 'find'ユーティリティの回りに(たぶん'エイリアス 'と呼ばれるかもしれません)。 – arkascha

+0

そして、あなたの例に注意してください: 'find'ユーティリティはあなたが望む結果で示唆しているように2つのファイルを見つけることはありません。両方が' find'のポイントで指定されたフォルダ内のフォルダに含まれていれば、ここに。これは、あなたの例では '.'が'/'を指さなければならないことを意味し、そうでなければその結果は不可能です。 _that_の場合は、ユーティリティが既に出力しているパスの先頭に '/'がありません。だから 'find/-name" file_name "'を実行しようとすると実際にあなたの望む絶対パスが得られます;-) – arkascha

+0

すばやい回避策は 'find/-name" folder1 "です。 grep "folder1/folder2" ' –

答えて

7

-wholenameオペアンプを使用します代わりに-nameのン:

find FOLDER -wholename '*folder1/folder2/*' 
2

この1つは(bashのを使用して)私のために働いた

ls -l /**/folder1/subfolder2/** 
2

あなたは以下のようにそれを行うことがあります。-prune

find . -path "*folder1/folder2" -prune -exec find {} -type f -name file.txt \; 

をあなたはあなたがラッパーを構築する必要があると思いディレクトリ

+0

あなたは' * folder1/folder2'を意図的に引用しないままにしましたか? –

+1

@RanyAlbegWein:それを指摘していただきありがとうございます。編集されました! – sjsam

関連する問題