有两个工具是可以用来找寻文件,它们是 find 和 locate。find 用文件现在的状态来搜寻,而 locate 则用一个由系统于每日早上六时四十二分产生(这是 cron job,在其它章节有提及)的索引档来搜寻。locate 不会找得到索引档产生后才创造的文件。不过因为 locate 利用索引档来搜寻,所以速度快得很,就好像利用书本的索引而非只看内容。
为了对比这两种搜寻的方法,先假设您忘记了 X 配置文件的位置。
/usr/X11R6/lib/X11/XF86Config
/usr/X11R6/lib/X11/XF86Config.eg
/usr/X11R6/man/man5/XF86Config.5x.gz
/usr/X11R6/lib/X11/XF86Config
find: /var/spool/cron/atjobs: Permission denied
find: /var/spool/cron/atspool: Permission denied
find: /var/lib/xdm/authdir: Permission denied
用法也有点不同。用 find 的时候,您需要指定从哪个目录开始搜寻,但 locate 会自动使用根目录。指定名字时您需要使用 -name 选项,而且您可以用别的条件来搜寻,例如更新日期或拥有者。利用 find 去寻找含有 XF86Config 的文件,需要用到 wildcard:
一般来说,find 的功能比较强大,而 locate 比较快,适合日常快速的搜寻。要把搜寻的各方面都解释得到将会耗用很长的时间,您不妨键入 info find,它会带您到 find 和 locate 的 info page,那里有更详尽资料。