我一直使用locate查找我知道名字的文件,locate非常快,我很喜欢。对于最近创建的文件,查找很棒,通常对于最近创建的文件,我知道它们的创建位置,因此我不必搜索整个文件系统。
当我忘记了目录的位置时,找不到或定位都不理想。
由于目录中的每个文件也都适合查找,因此“查找”总是吐出太多的信息。例如,如果我正在文件系统上某处搜索名为log的目录,则定位日志将返回大量结果。如果我对find执行相同的操作,则find / -name log -type d find会花几分钟的时间运行,并且每次遇到无法读取的文件夹时都会吐出各种权限错误。
有没有更好的办法?
答:所以我坚持使用grep,直到找到其他东西为止:
locatedir () {
for last; do true; done
if [[ $last == *\/* ]]
then
locate $@ | grep "${last}\$"
else
locate $@ | grep "/${last}\$"
fi
}
locate
有自己内置的正则表达式capablility:-r
或--regex
...为全方位的选择看:信息定位