标签: locate

定位与查找:彼此的用法、优缺点

在 Linux 和 Unix 系统中,有两种常见的搜索命令:locatefind.

各自的优缺点是什么?当一个人比另一个人有好处时?

find search files locate

149
推荐指数
3
解决办法
7万
查看次数

如何更新 Linux“定位”缓存

如何更新locate的缓存/索引?我安装了新软件包,但这些文件显然尚未编入索引。那么我必须提交哪个命令才能触发索引器?

我目前正在开发 debian jessie(测试):使用 Linux mbpc 3.13-1-amd64 #1 SMP Debian 3.13.7-1 (2014-03-25) x86_64 GNU/Linux

debian locate

106
推荐指数
3
解决办法
14万
查看次数

如何启用定位和排队要构建的数据库?

在新的 Ubuntu 10.4 实例上,我尝试使用该locate命令仅接收错误

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
Run Code Online (Sandbox Code Playgroud)

在其他系统上使用此命令时,我猜测这意味着尚未构建数据库(这是全新安装)。我相信它应该每天运行,但我如何将它排队立即运行?

另外,“每天运行”是如何确定的?如果我有一个每次只打开一个小时的盒子,数据库是否会自行构建?

command-line cron files locate

43
推荐指数
1
解决办法
5万
查看次数

locate 和 mlocate 的区别

我想安装该命令locate,该命令可通过sudo apt-get installmlocate.

但是,我首先运行sudo apt-get installlocate它似乎安装了其他东西。

locate <package>但是,键入命令似乎会调用mlocate.

什么是包locate,可以(应该)安全地删除它吗?

locate

29
推荐指数
2
解决办法
2万
查看次数

`updatedb` 和 `locate` 使用什么样的数据库?

locate程序findutils扫描一个或多个文件名数据库并显示任何匹配项。find如果文件在上次文件名数据库更新期间存在,这可以用作非常快速的命令。

现在有很多种数据库,

那么updatedb更新和locate使用什么样的数据库呢?

谢谢。

find database locate updatedb

25
推荐指数
2
解决办法
8089
查看次数

updatedb: 无法为 `/var/lib/mlocate/mlocate.db' 打开临时文件

我去使用updatedb命令来更新索引,我得到

updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Run Code Online (Sandbox Code Playgroud)

fyi locate 命令正在工作,例如

$ locate Index.xml
/usr/share/mysql/charsets/Index.xml
durrantm.../durrantm$ 
Run Code Online (Sandbox Code Playgroud)

尝试运行updatedb时如何克服这个问题?

locate updatedb

18
推荐指数
2
解决办法
3万
查看次数

在定位搜索中排除目录

使用locate查找文件系统中的路径进行搜索。
通常,您先验地知道您只对文件感兴趣,或者只对目录感兴趣。
“定位”搜索通常会返回许多结果。在结果中只包含一种类型会很有用,因为它有助于缩短输出。

但是有一个更有趣的论点是忽略文件或目录:因为结果路径列表可能不明确 - 不仅在理论上。

下面的例子是一个真实的案例,并不罕见:

$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Run Code Online (Sandbox Code Playgroud)

好的,我们发现了一些东西!但是...文件或目录?

$ file /usr/local/bin/xfce4-keyboard-overlay 
/usr/local/bin/xfce4-keyboard-overlay:   bash script
Run Code Online (Sandbox Code Playgroud)

所以这是一个文件...

$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
Run Code Online (Sandbox Code Playgroud)

而第二个不是。

这种歧义使长长的路径列表难以阅读,因此将目录过滤掉会非常好,例如使用locate.

这样的东西存在吗?即使目录过滤器与定位分开?

至少,可以使用脚本来迭代所有要检查的文件名——这可能很慢。

directory find files locate

17
推荐指数
2
解决办法
8549
查看次数

如何仅对目录使用 locate

这会在“Dropnot”的各个子目录下找到大量文件

$ locate Dropnot
Run Code Online (Sandbox Code Playgroud)

我可以找到目录位置locate吗?(“Dropnot”在哪个目录中)

所以如果Dropnot是 in /home/me/,那是唯一返回的条目。

如果是这样,最简单/最短的方法是什么?

最好通过标志或符号,而不是通过管道输出和搜索它等,但我会选择任何东西。

也许某种 Dropnot$ 用于行尾?(但没有用)。

directory locate

13
推荐指数
2
解决办法
1万
查看次数

updateb 怎么比 find 快这么多?

怎么updatedb比 快这么多find

这是执行看似相似任务updatedbfind命令之间的定时比较。

比较.sh

#!/usr/bin/env bash

cmd="sudo updatedb"
echo $cmd
time eval $cmd

cmd="sudo find / \
    -fstype ext4 \
    -not \( \
        -path '/afs/*' -o \
        -path '/net/*' -o \
        -path '/sfs/*' -o \
        -path '/tmp/*' -o \
        -path '/udev/*' -o \
        -path '/var/cache/*' -o \
        -path '/var/lib/pacman/local/*' -o \
        -path '/var/lock/*' -o \
        -path '/var/run/*' -o \
        -path '/var/spool/*' -o \
        -path '/var/tmp/*' -o \
        -path '/proc/*' \
    \) &>/dev/null" …
Run Code Online (Sandbox Code Playgroud)

find locate updatedb

11
推荐指数
1
解决办法
1681
查看次数

locate txt 与locate *.txt 有什么区别?

输出locate txt | head

/etc/brltty/brl-ba-all.txt
/etc/brltty/brl-bd-all.txt
/etc/brltty/brl-bl-18.txt
/etc/brltty/brl-bl-40_m20_m40.txt
/etc/brltty/brl-ec-all.txt
/etc/brltty/brl-ec-spanish.txt
/etc/brltty/brl-eu-all.txt
/etc/brltty/brl-lb-all.txt
/etc/brltty/brl-lt-all.txt
/etc/brltty/brl-mb-all.txt
Run Code Online (Sandbox Code Playgroud)

输出locate *.txt | head

/home/abc/capital.txt
/home/abc/state.txt
Run Code Online (Sandbox Code Playgroud)

为什么输出结果会有如此巨大的差异?第二个命令似乎只检查我的主文件夹,但第一个命令似乎检查许多目录。为什么会这样?

shell filenames locate

11
推荐指数
3
解决办法
1261
查看次数

标签 统计

locate ×10

find ×4

files ×3

updatedb ×3

directory ×2

command-line ×1

cron ×1

database ×1

debian ×1

filenames ×1

search ×1

shell ×1