你的位置:首页 > 软件开发 > 操作系统 > 【Linux相识相知】文件查找(locate/find)

【Linux相识相知】文件查找(locate/find)

发布时间:2017-07-23 12:00:14
在用linux操作系统的时候,当我们忘记之前某个文件存储的位置,但是知道其文件名或者模糊的知道其文件名,我们都可以通过文件查找工具来查找,linux提供两种常用的查找工具,locate和find,在日常使用中后者比前者较前者功能更强大更具有实时性,下面我们就这两种工具来谈一谈她们 ...

【Linux相识相知】文件查找(locate/find)

在用linux操作系统的时候,当我们忘记之前某个文件存储的位置,但是知道其文件名或者模糊的知道其文件名,我们都可以通过文件查找工具来查找,linux提供两种常用的查找工具,locate和find,在日常使用中后者比前者较前者功能更强大更具有实时性,下面我们就这两种工具来谈一谈她们的使用方法。

 

Locate

locate是基于实现构建好的索引库(索引库可以理解成文件路径的集合),索引库的位置放在/var/lib/mlocate/mlocate.db文件里面,系统一般一天会自动更新一次,也可以使用updatedb手动更新,要注意的是,索引库的构建过程需要遍历整个文件系统,非常消耗系统资源。

locate的特点是查找的速度快,比find快很多,因为它只在查找索引库,而find会遍历整个文件系统的路径。快的好处自然也给locate带来的缺点,就是它并非是实时查找,意思就是你如果刚刚创建了一个文件,但是你忘记了其路径,只记得其名称,那么这个时候就不建议使用locate,因为索引数据库没有更新,你使用locate查不到,除非你走运,定期更新的时间刚好在创建文件完文件之后,locate在匹配文件名的时候是模糊匹配。

下面我们就来介绍一下locate的用法:

locate

NAME:通过文件名查找文件SYNOPSIS:locate [OPTION]... PATTERN...-b:只匹配路径中的基名;-c:输出符合条件文件的数目-r:使用基本正则表达式--regex:使用扩展正则表达式-i:忽略大小写-q:安静模式,不会有任何输出

updatedb的配置文件在/etc/updatedb.conf

PRUNE_BIND_MOUNTS = "yes"PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"PRUNENAMES = ".git .hg .svn"PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"

 

小练习:

原标题:【Linux相识相知】文件查找(locate/find)

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录