ack (ack-grep としてパッケージ化されることもあります) を使用すると、次のようにして特定の文字列を含むパスを見つけることができます。
ack -g somestring
しかし、ファイル名に「somestring」が含まれるファイルのみが必要な場合はどうすればよいでしょうか?
私はfindが進むべき道であることに同意します、しかしあなたはackでそれを簡単に行うこともできます:
ack -f | ack "string"
ここで、「ack -f」は、検索するすべてのファイルを再帰的にリストします。それを2番目のackコマンドにパイプして、それを検索します。ack -fには、引数がなくてもバイナリとディレクトリをスキップできるという利点があります。多くの場合、「find」コマンドは、はるかに短い「ack」コマンドに置き換えることができます。
ユーティリティを使用できfind
ます。このようなもの:
find /path/to/look/in -name '*somestring*' -print
一部のシステムでは、パスを省略した場合、現在のディレクトリが使用されます。他のシステムでは省略できません.
。代わりに現在のディレクトリに使用してください。
man find
また、他の多くのオプションについてもお読みください。
これは私にとってはうまくいきます。 ack -all "somestring" の場合、 ack --all "somestring" はその文字列を含むすべてのファイルを検索します。ack "somestring" は、その文字列を含むファイルのみを検索します。ruby ファイルのように永続的に検索するファイル タイプを追加する場合、またはホーム ディレクトリに .ackrc ファイルを作成する場合は、次の行 --type-add=ruby=.haml,.rake,.rsel を追加します。ジョッシュ