有段时间没用locate了,今天找一个放了一年多的文件,locate没有捡起来。我跑去找到它。
我的主目录中的文件似乎都没有在索引中。仅位于 usr、var 等系统目录中的文件和文件夹。
我试过更新,但没有运气。我的主目录是否以某种方式被排除在索引之外?
locate 命令听起来很直观。我希望它能够在文件系统上定位文件。但是,它很少在系统上找到确实存在的文件:
$ locate ipsec.secrets
Run Code Online (Sandbox Code Playgroud)
即使从文件系统根目录 / 运行,这也不会产生任何结果。该文件确实存在:
$ whereis ipsec.secrets
ipsec: /usr/sbin/ipsec /etc/ipsec.secrets /etc/ipsec.d /etc/ipsec.conf /usr/lib/ipsec /usr/share/man/man8/ipsec.8.gz
Run Code Online (Sandbox Code Playgroud)
为什么 locate 找不到这个文件?
locate whereis和which命令之间的基本区别是什么。
我观察到的基本区别是,locate定位所有相关的文件名称在整个文件系统,而whereis和which命令只给安装应用程序的位置(文件系统/本地地址)。我的观察有多准确?
这些命令是如何在内部实现的。locate与破折号搜索相比,为什么工作如此之快,而locate必须在整个文件系统层次结构中搜索与目标字符串匹配的特定文件名?
如何编辑update.confat/etc/update.conf以在 Ubuntu 上每天运行?这将使我能够使用locate最新的数据库。
我读了这个:
默认设置,updatedb,它已经在/etc/cron.daily 中,它的名字是slocate.cron 如果你想在启动时运行updatedb,你可以在文件/etc/rc.d/rc.local 中添加一行updatebd .
在 FC4 中,您必须编辑文件 /etc/updatedb.conf 并设置 DAILY_UPDATE=yes。
但这适用于 Fedora。
我的 /var 空间不足
25G 25G 0 100% /var
Run Code Online (Sandbox Code Playgroud)
看起来 mlocate.db 是问题所在:
# find /var -printf '%s %p\n' | sort -nr | head
13140140032 ./lib/mlocate/mlocate.db.cgLMAM
12409839616 ./lib/mlocate/mlocate.db.MqGeqe
# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf"
Run Code Online (Sandbox Code Playgroud)
我看不出还有什么可修剪的。那么我该如何解决这个问题?谢谢
有时我需要搜索带有重音字符(一般是变音符号)的文件,通常使用 locate/mlocate。我希望设置(可能在/etc/updatedb.conf),以便我使用某种语言映射来搜索这个特殊字符,例如:
a == âàáäÂÀÂÄ
e == êèéëÊÈÉË
i == îïíÎÏ
o == ôöóÔÖ
u == ûùüÛÜÙ
c == çÇ
n == ñ
Run Code Online (Sandbox Code Playgroud)
因此locate -i liberación也应该使用字符串liberaciòn甚至liberaciòn搜索文件名。
findmlocate开发人员)在这里说官方源代码在 pagure.io(和Github 上的一个分支)。当我运行该ls -l命令时,我会获得有关当前目录中文件的详细信息,例如权限、所有者、组、文件大小。
有没有办法在运行时获得这些相同的详细信息,而不仅仅是文件的位置locate?
使用该locate命令在 linux 终端中搜索关键字会在短时间内给出答案。使用的搜索算法是什么?
我正在我的源中寻找一个文件,并尝试了定位和查找。出人意料的是,locate 是在整个机器中搜索,而且比 find 更快,后者只在当前目录和子目录中搜索。
这是我对两者的 shell 命令:
find . -name vendorsetup.sh # takes 50 seconds to search all files in curren -sub directories.
locate vendorsetup.sh # takes 20 seconds to search file in whole machine.
Run Code Online (Sandbox Code Playgroud)
为什么这个?
我想定位并显示图像。有什么办法可以使用管道或......?我想找到图像X,我做了locate X并且显示了路径,但我无法将输出发送到 xdg-open。
locate ×10
command-line ×5
find ×2
search ×2
14.04 ×1
bash ×1
disk-usage ×1
filesystem ×1
ls ×1
unity-dash ×1
updatedb ×1
xdg-open ×1