名前に基づいてファイルのパスを見つける方法は?


22

settings.xmlUbuntuマシンでファイルを見つけようとしています。どこにあるのか、どのディレクトリにあるのかはわかりません。

私はこれを使ってみました-

ls -R | grep settings.xml

しかし、それがどこにあるのかをフルパスで表示しません。フルパスを提供できる他のコマンドを試してみる必要がありますか?


4
解決策がの出力を解析することであると思うときはいつでもls、あなたはそれを間違った方法でほとんど確実にしています。
テルドン

回答:


23

高速検索の場合(ただし決定的ではありません):

locate -br '^settings.xml$'

からman locate

   locate  reads  one or more databases prepared by updatedb(8) and writes
   file names matching at least one of the PATTERNs  to  standard  output,
   one per line.

   -b, --basename
          Match  only  the base name against the specified patterns.  This
          is the opposite of --wholename.
   -r, --regexp REGEXP
          Search for a basic regexp REGEXP.  No PATTERNs  are  allowed  if
          this  option  is used, but this option can be specified multiple
          times.

^そして$名前があることファイルのみを保証settings.xmlしていないが、名前ファイル含まれてい settings.xml印刷されますが。

初めて実行する必要があるかもしれません:updatedb(as root)のデータベースを更新/構築しますlocate


@terdon、あなたは私がに見て約しかし決して持っていない、私を驚かせたman locateの前に!単純な検索ツールであると仮定します。どうもありがとうございました。
user.dz 14

はい、最初にマニュアルページを読んだときの反応はほとんど私のものでした:)
terdon

4
それはの役割は注目に値するupdatedb-このコマンドのをlocateとにかく、よく私のために、それなしで失敗した
RM-バンダ

@ rm-vanda、答えを更新して言及しましたupdatedb。ありがとうございました。
user.dz 14

4
locate '*/settings.xml'locate(利用可能な場合)のさまざまな異なる実装間でおそらくより移植性があります。
ステファンシャゼラス16

15

ファイルシステム全体の低速で安定した検索ですが、決定的です。

find / -xdev -name settings.xml

しばらく時間がかかり、許可エラーが発生する場合がありますが、そこに到達します。それがどこにあるのかもっと知っているなら、最初のディレクトリ//where/you/guess


4
2>/dev/nullコマンドの最後に追加すると、すべてのエラー出力が抑制されます(stderrをヌルデバイスにリダイレクトすることにより)。
タナースウェット14

2
-xdev:他のファイルシステムのディレクトリを下らないでください。
パブロA

1

例:

$ locate settings.xml
/usr/share/mime/application/x-cisco-vpn-settings.xml

0

あなたが探しているものが正確にわからない場合、ツリーは別の良い方法です、そしてそれは少し速いようです-

tree -f / | grep settings.xml

その他の便利なフラグ: -i grepでは、-hツリーで人間が読めるように大文字と小文字を区別 しません-

-manページには多くの便利なオプションがあります-!


6
良い考えでtree(1)はありませんが、ファイルのASCIIアートツリーを表示しますgrep(1)
フォンブランド14

1
はい、使用treeする場合find . type -fは、より高速なものを使用することもできます。
テルドン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.