对文件定位的命令有which、whereis、find、locate以及slocate,每个命令的用法及适用环境也有一定差别,今天刚好看书看到这里,故做一小结。
1、which
语法:
which command
说明:
在PATH环境变量指示的位置寻找command的位置并显示其完整路径名称。只要找到一个符合条件的可执行文件即退出。
2、whereis
语法:
whereis [options] name
说明:
所给出的name会先行去掉前面的路径名及后面的扩展名,然后按照去掉之后结果在Linux的标准目录中搜索的可执行文件、源码文件或manpage文件。默认情况下whereis只在下面的目录中进行查找,并且不会进入子目录查找,所以不一定总能找到你要的东西。
/{bin,sbin,etc}
/usr/{lib,bin,old,new,local,games,include,etc,src,man,sbin,
X386,TeX,g++-include}
/usr/local/{X386,TeX,X11,include,lib,man,etc,bin,games,emacs}
但可以通过命令的选项改变命令的行为,如只找源码文件或可执行文件。
绝大部分的软件都安装在这些标准目录中,所以which找到不的命令可以用这个命令试试。
3、find
语法:
find paths expression [action]
说明:
以paths为探索起点,逐层查找每一个符合expression条件的文件,并对该文件执行action代表的处理动作。查找时要遍历paths下的所有子目录及文件,引发大量的读磁盘操作,因而查找的速度不是特别快。
该命令功能强大,参数的复杂度也与之成正比,这里不做详细的说明。但这条命令还是值得我们花大力气学习的。在查找的效果上,可以说:只要磁盘上存在的东西,用它都能找得到(前提是你要有适当的权限)。
4、locate
语法:
locate patterns
说明:
在索引数据库中查找符合patterns的文件,由于是在索引数据库中查找,所以查找速度极快。locate特别适合搜索很少变动的目录,对于最近的新建文件及改过名的文件,则无能为力,除非重建数据库。
重建数据库的命令是updatedb,一般可把该命令放到cron中定期执行。
5、slocate
语法:
slocate patterns
说明:
与locate相似,只是slocate在执行时会自动跳过那些没有权限的目录。
阅读(2491) | 评论(0) | 转发(1) |