我locate
在 Linux 上使用该命令。我目前使用它搜索整个文件系统。我只希望它在特定目录中搜索。我怎样才能做到这一点?
Paw*_*cki 14
另一种方法是使用模式匹配locate
:
locate '/some/directory/*filename*'
Run Code Online (Sandbox Code Playgroud)
比较以下命令的输出:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
Run Code Online (Sandbox Code Playgroud)
locate /usr/lib*tmpfile*
给出相同的结果。
使用以下命令为您的特定目录创建 slocate 数据库:
updatedb -U /path/to/directory
Run Code Online (Sandbox Code Playgroud)
并搜索:
locate <search_string>
Run Code Online (Sandbox Code Playgroud)
更新
这在我的 Gentoo 系统上运行良好,但 CentOS 不包含-U
选项。因此,您可以尝试以下方法:
使用以下命令构建数据库:
# updatedb -U /path/to/dir -o dir_locate.db
Run Code Online (Sandbox Code Playgroud)
并搜索:
# locate -d dir_locate.db <search_string>
Run Code Online (Sandbox Code Playgroud)
我能想到的最简单的答案是
locate search_term | grep "/specified/directory"
Run Code Online (Sandbox Code Playgroud)
更好的解决方案可能是使用“查找”及其路径选项......
归档时间: |
|
查看次数: |
16220 次 |
最近记录: |