LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1110|回复: 8

请教如何确定一个文件的位置?

[复制链接]
发表于 2006-3-16 15:53:06 | 显示全部楼层 |阅读模式
有时碰到一些文件,比如说一些头文件,不知他们的具体位置,如何确定?thx
发表于 2006-3-16 16:07:10 | 显示全部楼层
先执行updatedb,然后locate xxxxxx
回复 支持 反对

使用道具 举报

发表于 2006-3-16 20:42:31 | 显示全部楼层
locate命令,运行迅速,但是需要先建立数据库,可以每天定时运行数据库。
find命令就是直接查找,可能运行速度会很慢。
回复 支持 反对

使用道具 举报

发表于 2006-3-16 20:45:59 | 显示全部楼层
find . -name "main.c" 可以从当前目录下寻找 main.c 文件, 包括子目录. 通配符也是支持的
locate main.c 则是寻找系统中所有的文件名及路径名中包含 main.c 的文件, 前提是这些路径已经通过 updatedb 缓存过了. 如果想更准确的定位, 再用 grep 过滤一下就好了. locate 非常快, 但是它的寻找比较弱智, 假如你要找一个叫 abc 的文件, 那么假如你的系统中一个文件夹也叫 abc, 不但这些都会作为结果输出, 甚至连 abc 下所有的文件都会输出(因为目录名匹配嘛)

虽然楼主没有问, 但我想 grep 命令也是楼主想要知道的.
grep 命令用来过滤文件, 它的典型用法(或者称为我常用的方法^_^)有如下两种
ls | fgrep abc
fgrep -r "stdio.h" *
(fgrep 是 grep 不支持正则表达式的版本, 可能会快一些)
前者只加一个待查找的样式, 后者则在当前目录下递归搜索所有内容含有stdio.h的文件.对于程序员来说,这样的功能应该是比较有用的.
回复 支持 反对

使用道具 举报

发表于 2006-3-16 20:50:58 | 显示全部楼层
若果是可执行文件,还可以用 whereis xxxxx 或者 which yyyyy
回复 支持 反对

使用道具 举报

发表于 2006-3-17 08:28:33 | 显示全部楼层
如果你一直使用debian的包,你还可以安装apt-file,那样你可以搜索所有安装和未安装的文件,特别是一些开发包包含的头文件,比如你想自己编译,可是找不到一些头文件,其实可能是没有安装一些开发包,你只要apt-file search 头文件名就可以知道这个头文件属于哪个开发包了。

记住,要经常性的做apt-file update,不然就不准了。

如果你经常自己编译安装软件的话,用locate就比较好,它可以搜索到硬盘上的任意一个文件。
当然需要经常性的运行updatedb,文件/etc/updatedb.conf可以设置不搜索哪些路径。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-17 15:49:04 | 显示全部楼层
谢谢各位的指点,受益菲浅,thx
回复 支持 反对

使用道具 举报

发表于 2006-3-21 14:56:25 | 显示全部楼层
确实受益匪浅
回复 支持 反对

使用道具 举报

发表于 2006-3-21 15:06:28 | 显示全部楼层
还有最土的方法,gnome和kde都自带搜索工具。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表