すべてを

▼開く

閉じる▲

ファイルやコマンドの場所(ディレクトリパス)を調べ、その結果を検索する

○「ping」コマンドの場所(ディレクトリパス)を調べ、grepで検索する

locateコマンドの出力をgrepコマンドで検索する
$ locate ping | grep -w 'ping'
/usr/share/man/man8/ping.8.gz
/usr/share/man/ja/man8/ping.8.gz
/usr/share/xemacs/xemacs-packages/etc/sounds/the-ping.au
/usr/share/xemacs/xemacs-packages/etc/sounds/the-ping.wav
/bin/ping

locateコマンドで「ping」を検索し、その結果をパイプ「|」でgrepコマンドに送り、-wオプションと検索文字列「'ping'」を指定する。grepコマンドの-wオプションにより、単語としての「ping」が検索され、「stopping」や「mapping」などの文字列中にある「ping」が除外される。

●単純にlocateコマンドで「ping」を調べた場合

locateコマンドは、その文字列を含むファイルの場所を表示するため、「stopping」や「urlmapping」などの文字列を (部分的にでも、またどんな位置にでも) 含むファイル名をすべて表示する。場合によっては、非常に大量に結果が表示される。このような場合は、locateコマンドの出力をgrepで検索して必要な情報を得る。

locateコマンドで「ping」コマンドの場所を検索する
$ locate ping
/etc/gnome-vfs-2.0/modules/mapping-modules.conf
/usr/share/doc/pspell-0.12.2/man-html/3_Keeping.html
/usr/share/doc/pspell-0.12.2/man-text/3_Keeping.txt
/usr/share/doc/freetype-2.1.4/docs/glyphs/clipping.png
/usr/share/doc/irda-utils-0.9.15/README.irdaping
/usr/share/doc/samba-3.0.9/docs/htmldocs/Samba-HOWTO-Collection/groupmapping.html
・・・・・・・・・・・・・・・・・・・・・・・・・・・・中略・・・・・・・・・・・・・・・・・・・・・・・・・・・・
/usr/sbin/arping
/usr/sbin/ping6
・・・・・・・・・・・・・・・・・・・・・・・・・・・・中略・・・・・・・・・・・・・・・・・・・・・・・・・・・・
/bin/ping
/bin/ping6
/sbin/arping

ファイルやコマンドの場所(ディレクトリパス)を調べる

○「ifconfig」コマンドの場所(ディレクトリパス)を調べる

locateコマンドでファイル名を指定する
$ locate ifconfig
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/man/ja/man8/ifconfig.8.gz
/sbin/ifconfig

locateコマンドに続いて検索したいファイル名「ifconfig」を指定すると、その文字列を含むファイルの場所(ディレクトリパス)を表示する。locateコマンドは、実際にファイル名で検索しているのではなくファイル名データベースを検索するため、検索が速い。ただし、このデータベースが更新されない限り新しいファイルの情報は反映されないため、新しいファイルの情報が表示されない場合がある。データベース更新の頻度はシステムの設定による。

●ファイル名データベースが作成されていない場合

$ locate ifconfig
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or directory
warning: You need to run the 'updatedb' command (as root) to create the database.

ファイル名データベースが作成させていない場合にlocateコマンドを実行すると、上のような警告がでる。スーパーユーザで「updatedb」コマンドを実行してファイル名データベースを作成すると、locateコマンドでファイルの検索ができる。

●データベースの更新がなされていない場合

$ locate Tee
warning: locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old

ファイル名データベースが更新されていない場合にlocateコマンドを実行すると、上のような警告がでる。スーパーユーザで「updatedb」コマンドを実行してファイル名データベースを更新すると、locateコマンドでファイルの検索ができる。