web-dev-qa-db-ja.com

Linuxでファイルを検索する方法は?

Linuxでのms-windows関数検索に似た名前でファイルまたはコンテンツを再帰的に検索する良い方法を知っていますか?私はそれが最善ではないと疑ってfind . | grep test.htmlを行うことができます。答えてくれてありがとう。

たとえば、find . | grep terms.htmlを実行すると期待どおりの結果が得られますが、locate terms.htmlは、locateが更新されたdbを取得しても、期待どおりの結果が得られません。ファイルが置かれているUSBスティックであることが関係している可能性があります。

3
Niklas

コマンドは次のように検索されます

 find . -iname '*hellofiles*'

find・location・-inameは大文字と小文字を区別しないことを意味し、必要に応じて ''は正規表現です。

find/home/user -iname '* Zip'は、/ home/user内のすべてのZipファイルを検索します。

Locateを使用してより高速なルックアップが必要な場合は、ディスクの設定方法に応じて毎週または毎日のように、ディスクを定期的にスキャンするユーティリティがあります。

locate myfile

そして、updatedbがmyfileをどこかで見た場合、データベースを調べます。

14
rapadura

パッケージの場合:dpkg -L packagename

または、特定のフォルダーにあることがわかっている場合は、次のようにgrepの使用を追加します。

dpkg-Lパッケージ名| grepフォルダー名

たとえば、Chromiumをインストールしたばかりで、ビンがどこにあるかを知る必要があります

dpkg-Lクロムブラウザ| grep bin

2
andymnc

find には、名前、正規表現、またはサイズや所有権などのさらに複雑な基準でファイルを検索できるようにするオプションがいくつかあります。例えば。

find . -iname '*.txt'

リンクされたマニュアルページのサンプルセクションも参照してください。

とはいえ、findには、呼び出すたびにファイルシステムを検索するという明確な欠点があります。一方、 locate ユーティリティは、その多くのバリエーションで、システム内のファイルの定期的に更新されるデータベースを使用します。

2
thkala

find ./ -name "filename"または、find ./ -name "*.jar"のような操作を実行して、拡張子が.jarのすべてのファイルを検索できます。 find ./ -name "*.jar" | xargs grep -n 'main'を実行して、メインを含むすべての.jarファイルを検索することもできます。

1
Grammin

find . -name test.htmlまたは、ワイルドカードを使用することもできます:find . -name \*test.html

1
Will

ターミナル経由でこれを実行したい場合は、コマンドfindを使用できます。

パイプライン化findgrepは機能します。それ以外の場合、findは、これを行うためのいくつかのオプション(-name-inameなど)を提供します。

find DIRECTORY -name test.html
1
peoro

findlocateの2つのユーティリティがあります。他の人がfindを提案しているので、locateについて話します。

古いシステムには、mlocateまたはslocateという名前のパッケージをインストールします。インストール後、コマンドupdatedbを実行します。 locateはデータベースを使用してすべてのファイルへのパスを保存するため、検索ははるかに高速ですが、頻繁に古くなるという欠点があり、データベースへの入力には数分かかる場合があります。

データベースにデータを入力したら、locate fileを実行します。ファイルの名前だけを使用すると、/で始まるファイルが検索されます。したがって、/etc/file/usr/share/fileを取得できます。ホームディレクトリに限定したい場合は、次を使用してください。

 locate file | grep /home/user

ワイルドカードは、何らかの理由でlocateでは機能しません。

1
jonescb

Windowsの検索機能はわかりませんが、|の代わりを探しているときはgrep *次に、次のことを試すことができます。

find /* -name "keyword"

slocateもあなたの基準に合うはずです。

よろしく、/ dley

1
dley