私はUbuntuを使用しています。名前に文字列「John」が含まれる現在のディレクトリとサブディレクトリ内のすべてのファイルを検索したいと思います。 grep
はファイル内のコンテンツと一致することがありますが、ファイル名でそれを使用する方法がわかりません。任意の助けをいただければ幸いです。
find コマンドを使用し、
find . -type f -name "*John*"
正しい答えはすでに提供されていますが、あなたが自分自身を助ける方法を学ぶために、私は別の方法で役立つものを投入すると思いました。 1つのWordで達成しようとしていることを要約できる場合、Linuxには強力なヘルプ機能があります。
man -k <your search term>
それは、簡単な説明に検索語を含むすべてのコマンドをリストすることです。通常、かなりの可能性がありますfind目的を達成します。 ;)
その出力はときどき圧倒される場合があります。次のように、利用可能なすべてのマンページではなく、実行可能ファイルに絞り込むことをお勧めします。
man -k find | egrep '\(1\)'
または、次のようにより高い特権レベルを必要とするコマンドも探したい場合:
man -k find | egrep '\([18]\)'
find
コマンドは、ファイルシステム内の実際のファイルをスキャンするため、時間がかかります。
最も簡単な方法はlocate
コマンドを使用することで、すぐに結果が得られます。
locate "John"
コマンドが見つからない場合は、mlocate
パッケージをインストールし、updatedb
コマンドを最初に実行して、検索データベースを初めて準備する必要があります。
ackを使用するのは簡単です。 ack <string to be searched>
と入力するだけです
これは、検索するディレクトリでtree
コマンドを使用する非常に簡単なソリューションです。 -f
は完全なファイルパスを示し、|
は、ツリーの出力をgrep
にパイプして、名前に文字列filename
を含むファイルを見つけるために使用されます。
tree -f | grep filename