大文字小文字に関係なく、任意の順序で完全または部分的な単語のファイル名を検索できる検索ツール(Ubuntu 14.04デスクトップから)またはメソッド/コマンド(ターミナル)を探しています。
知ってる?
これが私がしなければならないことの例です。 /home/myusername
名前に「個人」、「収入」、「税金」、「州」が含まれるファイルがあります。しかし、ファイル名が
state personal income tax return.doc
またはpersonal Income Tax return - state.doc
またはincome tax return - State - personal.doc
。また、単語の一部が大文字になっているかどうかも思い出せません。また、それぞれの単語が含まれている他の膨大な数のファイルがあります。したがって、単語の1つ( "state"のみ、または "tax"のみなど)を単純に検索しても、あまりにも多くのファイルが返されるため、あまり役に立ちません。
理想的には、[所得の州の収益]または[州の所得の収益]を入力して、大文字や単語の順序に関係なく、ファイル名に3つの単語すべてが含まれるファイルを復元できるようにしたいと考えています。 GUIツールが推奨されますが、ターミナルメソッドも問題ありません。
私はCatfishとgnome-search-tool/"Search for Files"を試しました-ファイル名での出現順に用語が入力されていない限り、どちらも複数の検索用語で機能しないようです。検索語の間。
grep
は使用しないでください! find
には、完全に一致する構文のファイル名マッチングがあります。あなたの例を使用するには:
find [PATH...] -iname '*personal*' -iname '*income*' -iname '*tax*'
どこ [PATH...]
は、検索する0個以上のパスです。
mlocate
ファイル名データベースを無効にしていない場合は、検索を高速化するためにそれを利用する方が速い場合があります。残念ながら、これは複数の結合検索語をサポートしていないため、grep
も必要です。
locate -ib income | grep -i personal | grep -i tax
とにかく検索結果を見ることになるので、スーパーセットを検索する方がよい場合があります(メモリが十分に機能しない場合)。
locate -ib income
grep
は、ファイル名で検索する単語と同じ数だけ使用できます。たとえば、「収入」、「税金」、「個人」、「州」という単語を含むファイル名を見つけるには、次のようにします。
ls -R /home/myusername/ | grep -i "income" | grep -i "tax" | grep -i "personal" | grep -i "state"
ここで-i
スイッチは大文字と小文字を区別しません。
注:
find
は、この種のシナリオに適しています。詳細は this answer および this answer を確認してください。
私が通常行うことは、ホームディレクトリfind . | grep 'SEARCHTERM1\|SEARCHTERM2'