Que*_*tin 46
在我看来,locate和find都是查找文件,但是为什么locate运行得这么快呢?
find搜索文件系统本身。它经过优化,可以告诉您给定文件的特定路径和频繁写入的所有信息(包括大小可能为数 GB 的文件的内容)。
locate搜索先前索引文件系统生成的数据库。该数据库针对执行的搜索类型进行了优化locate。
该数据库中有哪些文件?该数据库中是否有每个创建的文件?
数据库由 填充updatedb。其中的文件由传递给 的选项决定updatedb。文件将位于其中,除非它们位于正在搜索的区域之外或者它们是自updatedb上次运行以来创建的。
例如,我的 Ubuntu 默认安装有:
PRUNE_BIND_MOUNTS="yes"
PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot"
PRUNEFS="NFS afs autofs binfmt_misc ceph cgroup cgroup2 cifs coda configfs curlftpfs debugfs devfs devpts devtmpfs ecryptfs ftpfs fuse.ceph fuse.cryfs fuse.encfs fuse.glusterfs fuse.gvfsd-fuse fuse.mfs fuse.rozofs fuse.sshfs fusectl fusesmb hugetlbfs iso9660 lustre lustre_lite mfs mqueue ncpfs nfs nfs4 ocfs ocfs2 proc pstore rpc_pipefs securityfs shfs smbfs sysfs tmpfs tracefs udev udf usbfs"
Run Code Online (Sandbox Code Playgroud)
在文件中/etc/updatedb.conf。
因此,它会索引除某些目录之外的所有内容,这些目录由于各种(但希望相当明显)原因和一堆不同的文件系统类型(通常包含秘密数据、远程文件系统上的数据和系统 API)不应该被索引。
| 归档时间: |
|
| 查看次数: |
5868 次 |
| 最近记录: |