UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

ファイルを探す 〜locateの検証〜

ファイルを探す

〜locateの検証〜


0.改訂履歴

  • 2002.08.29 新規作成

1.はじめに

 このドキュメントでは,ディスク上からファイルを探す方法を説明する.

 UNIXでファイルを探す場合は,findコマンドが有名だが,より高速に検索するlocateコマンドを試してみる.

 なお,使用しているOSは,MacOS Xだが,Linuxの大半のディストリビューションでも実装している.

2.locateとは

  • 多くのLinuxとMacOS Xには,locateというコマンドが用意されている.
  • locateは,locate.databaseというデータベースによって,ファイルの場所が管理されている.
  • 定期的にlocate.updatedbスクリプトを実行してデータを更新する必要がある.
  • ほとんどのLinuxディストリビューションでは,自動更新が設定されている.

3.使い方

  • locateの使い方は,次の通りである.
locate ファイル名
  • ファイル名をしたい下だけで,ワイルドカードになっている.
  • locateというファイルを探してみる.
[help-mob:~] shinnai% locate locate
/private/var/db/locate.database
/private/var/tmp/locate.list.634
/usr/bin/locate
/usr/libexec/locate.bigram
/usr/libexec/locate.code
/usr/libexec/locate.updatedb
/usr/share/emacs/20.7/lisp/locate.el
/usr/share/emacs/20.7/lisp/locate.elc
/usr/share/man/man1/locate.1
/usr/share/man/man8/locate.updatedb.8
[help-mob:~] shinnai% 

4.時間を計って他のツールと比べてみる

  • timeコマンドを使って,実行時間を調べてみる.
  • 最初に,NetEscape.jpgというファイルを探してみる.
[help-mob:~] shinnai% time locate NetEscape.jpg
/Users/shinnai/Sites/TeamNeJp/image/NetEscape.jpg
0.070u 0.020s 0:00.12 75.0%     0+0k 0+0io 0pf+0w
[help-mob:~] shinnai% 
  • 0.12秒かかっている.
  • 次に,findコマンドを使ってみる.
  • なお,時間がかかりすぎるので,ユーザディレクトリだけに絞っている.
[help-mob:~] shinnai% time find /users/shinnai -name NetEscape.jpg -print
/users/shinnai/Sites/TeamNeJp/image/NetEscape.jpg
0.060u 0.430s 0:06.06 8.0%      0+0k 1626+450io 0pf+0w
[help-mob:~] shinnai% 
  • 6秒かかっている.
  • 経過時間よりも,システムリソースをたくさん使っている事が分かる.
  • これによって,単純にファイルを探すだけなら,locateを使った方がよいと結論がでた.


広告スペース
Google