ubuntu的文件查找命令

1.whereis 文件

  特点:快速,但是是模糊查找,例如找#whereis mysql 它会把mysql,mysql.ini,mysql.*所在的目录都找出来.

2.find/ -name 文件

  特点:准确,但速度慢,消耗资源大;在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行。find命令的一般形式为:
find pathname -options [-print -exec -ok ...]
如: find / -name "filename"
目的:在根目录“/”开始搜被称为filename的文件,“filename”文件名可以包含通配符(*,?),注意:filename是文件名字符串,可以带双引号,也可不带find命令功能强大,它有很多选项让你以不同的方式搜索文件,例如,通过日期,文件大小,权限,拥有者等等。
find
命令的参数;
pathname:find
命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print
find命令将匹配的文件输出到标准输出。

3.locate 文件

  强力推荐的方法,最快,最好的方法.

  注意:第一次使用该命令,可能需要更新数据库,输入命令:sudo updatedb;运行updatedb

(无论在那个目录中均可,可以放在crontab)后在/var/lib/slocate/下生成slocate.db数据库即可快速查找.

默认不扫描外接的移动硬盘或者挂载在/media下的其他分区.所以可以修改/etc/updatedb.conf文件,修改内容如下:

-------------------------------------------------------------------------

PRUNE_BIND_MOUNTS="yes"

#PRUNENAMES=".git .bzr .hg .svn"

PRUNEPATHS="/tmp/var/spool /media"

PRUNEFS="NFSnfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfscoda devpts ftpfs

devfsmfs shfs sysfs cifs lustre_lite tmpfs usbfs udf"

-------------------------------------------------------------------------

第一行PRUNE_BIND_MOUNTS="yes"的意思是:是否进行限制搜索.

第二行 #PRUNENAMES=".git .bzr .hg .svn"表示对哪些后缀的文件排除检索,也就是列在这里面的后缀的文件跳过不进行检索.不同后缀之间用空格隔开.这个功能默认是关闭的(#注释掉了),如果需要打开需将#去掉.

第三行是排除检索的路径,即列出的路径下的文件和子文件夹均跳过不进行检索.其中/media目录被屏蔽掉了.

第四行是排除检索的文件系统类型,即列出的文件系统类型不进行检索.

只需要将第三行中的/meida删除即可.修改为PRUNEPATHS="/tmp/var/spool ", 重新运行updatedb,

再进行locate即可以对原来挂载在/media下的windowsntfs分区进行搜索.

你可能感兴趣的:(ubuntu,文件查找)