web-dev-qa-db-ja.com

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

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

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

ls -R | grep settings.xml

しかし、それは私にそれがどこにあるか完全なパスを表示しません。完全なパスを与えることができる私が試す必要がある他のコマンドはありますか?

23
SSH

高速検索の場合(ただし、確実ではありません):

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のファイルのみが印刷され、名前containsettings.xmlのファイルは印刷されません。

updatedbのデータベースを更新/構築するには、初めてrootlocateとして)を実行する必要がある場合があります。

24
user.dz

ゆっくりではあるが着実にファイルシステム全体を検索するが、決定的。

find / -xdev -name settings.xml

しばらく時間がかかり、いくつかの権限エラーが発生する可能性がありますが、そこに到達します。それがどこにあるかについてさらに考えがある場合は、最初のディレクトリを/から/where/you/guessに変更してください。

16
X Tian

例:

$ locate settings.xml
/usr/share/mime/application/x-Cisco-vpn-settings.xml
1
octopusb

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

tree -f / | grep settings.xml

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

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

0
rm-vanda

-laパラメータは、長いバージョンのlsとディレクトリも出力します。 ls -la | grep settings.xml