Linux 中的定位命令

2023-11-09

在 Linux 上工作时最常见的操作之一是搜索文件和目录。 Linux 系统上有多个命令允许您搜索文件,其中 find 和locate 是最常用的命令。

The locate命令是按名称搜索文件和目录的最快、最简单的方法。

在这篇文章中,我们将解释如何使用locate命令。

安装中locate(未找到定位命令)#

根据发行版以及系统的配置方式,locate 软件包可能会也可能不会预安装在您的 Linux 系统上。

要检查是否locate实用程序已安装,打开终端,输入locate并按Enter。如果安装了该包,系统会显示locate: no pattern to search for specified。否则,你会看到类似的东西locate command not found.

If locate尚未安装,您可以使用发行版的包管理器轻松安装它。

Install locate在 Ubuntu 和 Debian 上#

sudo apt update sudo apt install mlocate

Install locate在 CentOS 和 Fedora 上#

sudo yum install mlocate

如何locate Work #

The locate命令通过由生成的数据库文件搜索给定模式updatedb命令。找到的结果显示在屏幕上,每行一个。

在安装 mlocate 软件包期间,cron job创建运行updatedb每 24 小时发出一次命令。这确保了数据库定期更新。有关 cron 作业的更多信息,请查看/etc/cron.daily/mlocate file.

可以通过运行手动更新数据库updatedb作为 root 或具有 sudo 权限的用户:

sudo updatedb

更新过程将需要一些时间,具体取决于文件和目录的数量以及系统的速度。

数据库更新后创建的文件不会显示在定位结果中。

相比更强大的find搜索文件系统的命令,locate运行速度更快,但缺乏许多功能,并且只能按文件名搜索。

如何使用locate命令#

语法为locate命令如下:

locate [OPTION] PATTERN...

在最基本的形式中,当不带任何选项使用时,locate命令将打印与搜索模式匹配且用户具有读取权限的所有文件和目录的绝对路径。

例如搜索名为的文件.bashrc你可以输入:

locate .bashrc

输出将包括包含该字符串的所有文件的名称.bashrc以他们的名字:

/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxize/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

The /root/.bashrc文件不会显示,因为我们以没有访问权限的普通用户身份运行该命令/root目录。

如果结果列表很长,为了更好的可读性,您可以将输出通过管道传递到less命令:

locate .bashrc | less

The locate命令还接受包含通配符等通配符的模式*。当模式不包含通配符时,该命令将搜索*PATTERN*。这就是为什么在前面的示例中,显示了名称中包含搜索模式的所有文件。

通配符是用于表示零个、一个或多个字符的符号。例如,要搜索所有.md系统上的文件,您可以输入:

locate *.md

要限制搜索结果,请使用-n选项后跟您要显示的结果数。以下命令将搜索所有.py文件并仅显示 10 个结果:

locate -n 10 *.py

默认情况下,locate执行区分大小写的搜索。这-i (--ignore-case) 选项告诉locate忽略大小写并运行不区分大小写的搜索。

locate -i readme.md
/home/linuxize/p1/readme.md
/home/linuxize/p2/README.md
/home/linuxize/p3/ReadMe.md

要显示所有匹配条目的计数,请使用-c (--count) 选项。以下命令将返回包含以下内容的所有文件的数量.bashrc以他们的名字:

locate -c .bashrc
6

默认情况下,locate不检查找到的文件是否仍然存在于文件系统上。如果您在最新数据库更新后删除了文件,并且该文件与搜索模式匹配,则它将包含在搜索结果中。

仅显示当时存在的文件的名称locate运行时,使用-e (--existing) 选项。例如,以下内容将仅返回现有的.json files:

locate -e *.json

如果您需要运行更复杂的搜索,请使用-r (--regexp) 选项,它允许您使用基本正则表达式而不是模式进行搜索。该选项可以指定多次。
例如,要搜索所有.mp4 and .avi系统上的文件并忽略大小写,您将运行:

locate --regex -i "(\.mp4|\.avi)"

结论#

The locate命令在文件系统中搜索名称与给定模式匹配的文件和目录。命令语法很容易记住,结果几乎立即显示。

有关所有可用选项的更多信息locate命令类型man locate在您的终端中。

如果您有任何疑问,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的定位命令 的相关文章

  • 有没有办法配置 PuTTY 或其他终端以在下一个输出到 stdout 时闪烁任务栏?

    我专门寻找 PuTTY 的解决方案 但也对其他终端模拟器感兴趣 例如 Gnome Terminal 我的想法是 如果我开始一个tar zxvf为了能够在终端模拟器上设置触发器 将其最小化 然后在下一次输出到 stdout stderr 时
  • 如何在bash中退出if语句而不退出程序?

    重写这个问题以避免更多的反对票 因为对我来说删除它已经太晚了 我正在编写一个脚本 要求用户确认之前sourcing一些其他脚本 为了简化代码 假设有两个脚本sourced 但我希望用户可以source没有或仅是其中一个脚本 不是两者都存在
  • 从 ruby​​-ncurses 中获取 256 种颜色

    我的终端有 256 种颜色 效果很好 测试脚本在这里 http www frexx de xterm 256 notes 但是当我使用 ncurses 通过 Ruby ncurses 时它停止工作 打印该页面上给出的转义序列工作正常 但是当
  • 如何在 Gnome 终端中对 Python 错误的输出进行着色?

    注意 我在研究如何实际做到这一点后提出这个问题 其他有点相似但实际上与我的问题不同的问题涉及 颜色编码withinpython脚本 导入颜色库within剧本 使用类似的工具Solarized改进工具 例如Vim对 python 代码进行颜
  • 在终端中根据括号或圆括号(仅限顶级)分割文本文件

    我有几个文本文件 utf 8 我想在 shell 脚本中处理它们 它们的格式并不完全相同 但如果我只能将它们分解成可食用的块 我就可以处理它 这可以用 C 或 python 编程 但我不喜欢 编辑 我用 C 编写了一个解决方案 看我自己的答
  • unicharset_extractor:找不到命令

    我想使用超正方体创建新的列车数据 因此 请按照以下网站中提到的步骤进行操作 https blog cedric ws how to train tesseract 301 https blog cedric ws how to train
  • 使用 MacOS 终端从 .tar.xz 存档中提取具有文件扩展名的特定文件

    我有许多扩展名为的压缩档案 tar xz 据我所知 解压后所需的总大小约为 2TB 档案中有许多我想要的图像 有没有一种方法可以单独提取文件 例如带有扩展名的文件 jpg jpeg and gif从压缩档案中提取而无需提取每个文件 Than
  • 在有关 Android 工具链的“flutter doctor”中显示错误

    显示有关 android 工具链的错误 Android toolchain develop for Android devices Android SDK version 29 0 3 Android license status unkn
  • 在Python中的远程机器上执行命令

    我正在 Ubuntu 上用 python 编写一个程序来执行命令ls l在 RaspberryPi 上 连接网络 有人可以指导我该怎么做吗 当然 有多种方法可以做到 假设您有一个 Raspberry Piraspberry lan主机和您的
  • 如何从 Node.js 打开终端应用程序?

    我希望能够打开Vim从终端中运行的node js程序中 创建一些内容 保存并退出Vim 然后抓取文件的内容 我正在尝试做这样的事情 filename tmp tmpfile process pid editor process env ED
  • 在 Ruby 脚本中运行命令行命令

    有没有办法通过 Ruby 运行命令行命令 我正在尝试创建一个小型 Rub y 程序 该程序可以通过 screen rcsz 等命令行程序拨出和接收 发送 如果我能将所有这些与 Ruby MySQL 后端等 结合起来 那就太好了 是的 有以下
  • 强制“git status”在终端上输出颜色(在脚本内)

    EDIT 我想提出一个建议 解析颜色通常是一个考虑不周的想法 我想要它的部分原因是我可以解析它并在我自己的脚本输出中传递它 这是 好吧 但使用瓷器或类似的东西并自己重新构建彩色部件可能会更明智 原始问题如下 我喜欢看到颜色 因为我的脚本足够
  • 在 Mac 终端的 vim 语法突出显示中启用斜体

    我想让 vim 以斜体显示我的评论 并且我知道我需要放置 cterm italic in the hi Comment 我正在使用的 color vim 文件中的行 然而 这对文本显示没有影响 我怀疑这与某些 Terminal app 设置
  • 让 GNU C 编译器在 iOS 6.x 上运行

    我有一台越狱 evasi0n 第四代 iPad 带有 iOS 6 1 固件 通过 Cydia 我安装了移动终端 版本 520 2 然后 遵循this http iklive org cc compiling on ios 教程中 我已经下载
  • 在计算机上找不到 MySQL

    我最近直接从网站 mysql 5 7 9 osx10 10 x86 64 dmg 安装了MySQL 并且在尝试更改给定密码时遇到了很大的困难 返回的错误是 警告 在命令行界面上使用密码可能会导致 没有安全感 mysqladmin 连接到 l
  • OSX - 始终隐藏某些文件

    我知道如何在终端中显示和隐藏隐藏文件 但是有没有办法在显示隐藏文件时隐藏某些文件 例如 DS STORE 可以这么说 使某些文件超级隐藏吗 Use chflags与隐藏选项 ie chflags hidden fileToHide从 Fin
  • 编写脚本以使用预定义密码创建多个用户

    所以我想制作一个从运行的 users txt 创建用户的脚本 useradd m s bin false users in the users txt 并填写passwords txt中的密码两次 以确认密码 这是脚本 bin bash A
  • 断开连接后保持 SSH 会话运行 - 过夜 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是对此的后续问题question https stackoverflow com questions 33041892 keep ssh
  • VS Code 终端无法识别 PATH 变量

    我在 PATH 中添加了一个目录 但 VS Code 中的终端无法识别我尝试从该目录运行的命令 exe 终端使用 cmd 而不是 power shell 我缺少什么 重新启动我的计算机 它就工作了 显然 VS Code 无法识别这些更改
  • 在终端中访问文件“添加日期”

    在我的 Mac 上的下载文件夹中 文件有一个 添加日期 列 我正在尝试创建一个脚本来将超过 x 天的文件移至我的垃圾文件夹 以下方法有效 但它是根据创建 修改日期提取文件 而不是我从 Finder 中看到的 添加日期 有没有办法显示 使用这

随机推荐

  • Git 技巧:安全删除本地和远程分支

    使用 Git 是现代软件开发的重要组成部分 随着项目的发展 我们经常发现自己有多个分支代表不同的开发阶段 然而 维护太多分支可能会导致混乱和混乱 在本文中 我们将探讨安全有效地删除 Git 远程和本地分支的步骤 确保干净且有组织的工作流程
  • Linux Nohup 命令

    The nohup命令执行指定为其参数的另一个程序并忽略所有SIGHUP 挂断 信号 SIGHUP是当进程的控制终端关闭时发送到进程的信号 通常 当您通过 SSH 运行程序时 如果连接断开或注销 会话将终止 并且从终端执行的所有进程都将停止
  • 如何在 CentOS 7 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • 如何在 Debian 10 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 Debian
  • 如何在 Debian 9 上安装 Visual Studio Code

    视觉工作室代码是微软开发的免费开源跨平台代码编辑器 它有一个内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 可以使用扩展来扩展 Visual Studio Code 功能 本教程介绍如何使用 VS Cod
  • 使用 PostfixAdmin 设置邮件服务器

    Postfix Admin 是一个基于 Web 的界面 允许用户配置和管理基于 Postfix 的电子邮件服务器 使用 Postfix Admin 您可以创建和管理多个虚拟域 用户和别名 这是该系列的第一篇文章设置和配置邮件服务器其中涵盖了
  • 如何在 CentOS 8 上安装 PHP

    PHP 是最常用的服务器端编程语言之一 许多流行的 CMS 和框架 例如 WordPress Magento 和 Laravel 都是用 PHP 构建的 在本指南中 我们将讨论如何在 CentOS 8 上安装 PHP 7 2 7 3 或 7
  • 在 Debian 10 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 创建的证书颁发机构 它通过完全自动化的流程提供免费的 SSL 证书 旨在消除手动证书创建 验证 安装和续订 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并
  • 如何在 CentOS 7 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一种开源通用对象关系数据库管理系统 具有许多高级功能 可让您创建复杂的 Web 应用程序 在本教程中 我们将向您展示如何在 CentOS 7 计算机上安装 PostgreSQL 的两种不同方法
  • 如何在 Ubuntu 18.04 上安装 MariaDB

    MariaDB 是一个开源 多线程关系数据库管理系统 向后兼容 MySQL 的替代品 它由以下机构维护和开发MariaDB基金会包括MySQL的一些原始开发人员 在本教程中 我们将向您展示如何在 Ubuntu 18 04 计算机上安装 Ma
  • 在 CentOS 7 上使用 yum-cron 配置自动更新

    定期更新 CentOS 系统是整个系统安全最重要的方面之一 如果您不使用最新的安全补丁更新操作系统的软件包 您的计算机就会容易受到攻击 如果您管理多台 CentOS 机器 手动更新系统软件包可能会非常耗时 即使您管理单个 CentOS 安装
  • 在 Vim / Vi 中查找和替换

    本文介绍如何在 Vim Vi 中查找和替换文本 Vim 是最流行的命令行文本编辑器 它预装在 macOS 和大多数 Linux 发行版上 在 Vim 中查找和替换文本既快速又简单 基本查找和替换 在 Vim 中 您可以使用以下命令查找和替换
  • 安装和配置 Roundcube Webmail

    这是最后一部分设置和配置邮件服务器系列 其中我们将介绍如何安装和配置 Roundcube Webmail Roundcube 是一个基于 Web 的 IMAP 电子邮件客户端 具有用 PHP 编写的非常直观且现代的用户界面 要使用 Roun
  • Linux 中的自由命令

    我的 Linux 系统上有多少可用 RAM 内存 是否有足够的可用内存来安装和运行新应用程序 在Linux系统中 您可以使用free命令获取有关系统内存使用情况的详细报告 The free命令提供有关物理总量和swap内存 以及空闲和已用内
  • 如何在 Linux 中查找/获取您的 IP 地址

    在排除网络问题 设置新连接或配置防火墙时 了解设备的 IP 地址非常重要 IP 地址可分为两类 公共地址和私有地址 公共IP是唯一的并且可以从互联网访问的IP地址 私有 IP 地址保留供私有网络内部使用 而不直接暴露于 Internet 此
  • Python if..else 语句

    决策是计算机编程最基本的概念之一 Python 支持其他语言中常见的流程控制语句 但进行了一些修改 这if控制语句是最基本和众所周知的语句之一 用于根据特定条件执行代码 在这篇文章中 我们将回顾一下基础知识ifPython 中的语句 Pyt
  • Linux 中的 Echo 命令及示例

    The echo命令是Linux中最基本 最常用的命令之一 参数传递给echo打印到标准输出 echo常用于 shell 脚本中显示消息或输出其他命令的结果 回显命令 echo是 Bash 和大多数其他流行 shell 如 Zsh 和 Ks
  • 如何检查你的 Ubuntu 版本

    当您第一次登录 Ubuntu 系统时 在进行任何工作之前 最好检查一下计算机上运行的 Ubuntu 版本 新的 Ubuntu 版本每六个月发布一次 而 LTS 长期支持 版本每两年发布一次 LTS 版本在桌面和服务器上均受支持五年 其他标准
  • 如何在 Debian 9 上安装和使用 Docker

    Docker 是一个容器化平台 允许您快速构建 测试和部署应用程序作为可移植 自给自足的容器 几乎可以在任何地方运行 Docker 是容器技术事实上的标准 它是 DevOps 工程师及其持续集成和交付管道的重要工具 在本教程中 我们将指导您
  • Linux 中的定位命令

    在 Linux 上工作时最常见的操作之一是搜索文件和目录 Linux 系统上有多个命令允许您搜索文件 其中 find 和locate 是最常用的命令 The locate命令是按名称搜索文件和目录的最快 最简单的方法 在这篇文章中 我们将解