linux文件搜索相关命令

一、find命令用于在目录树中搜索文件和目录的工具。

下面是 find 命令常用选项的用法举例说明:

  1. 按名称查找文件:

    • find /path/to/dir -name "filename":在指定的目录及其子目录中按照文件名称进行查找。 例如:find /home/user/docs -name "*.txt" 将会在 /home/user/docs 目录及其子目录中查找所有以 .txt 结尾的文件。
  2. 按类型查找文件:

    • find /path/to/dir -type f:在指定的目录及其子目录中查找普通文件。
    • find /path/to/dir -type d:在指定的目录及其子目录中查找目录。
    • find /path/to/dir -type l:在指定的目录及其子目录中查找符号链接。 例如:find /home/user -type f 将会在 /home/user 目录及其子目录中查找所有的文件。
  3. 按大小查找文件:

    • find /path/to/dir -size +10M:在指定的目录及其子目录中查找大于 10MB 的文件。
    • find /path/to/dir -size -1G:在指定的目录及其子目录中查找小于 1GB 的文件。 例如:find /var/log -size +100K 将会在 /var/log 目录及其子目录中查找大于 100KB 的文件。
  4. 按时间戳查找文件:

    • find /path/to/dir -mtime -7:在指定的目录及其子目录中查找在过去 7 天内修改过的文件。
    • find /path/to/dir -mmin +30:在指定的目录及其子目录中查找在过去 30 分钟前修改过的文件。 例如:find /home/user/docs -mtime +365 将会在 /home/user/docs 目录及其子目录中查找一年前修改过的文件。
  5. 结合多个条件进行搜索:

    • find /path/to/dir -name "*.txt" -size +1M:在指定的目录及其子目录中查找名称以 .txt 结尾且大于 1MB 的文件。 例如:find /home/user/docs -name "*.txt" -size +1M 将会在 /home/user/docs 目录及其子目录中查找所有名称以 .txt 结尾且大于 1MB 的文件。

二、grep命令用于在文件中搜索指定的模式,并输出匹配的行。

下面是 grep 命令常用选项的用法举例说明:

1、普通搜索:

  • grep "pattern" file:在指定文件中搜索包含指定模式的行。 示例:grep "example" text.txt 将会在 text.txt 文件中搜索包含 "example" 的行。

2、忽略大小写搜索:

  • grep -i "pattern" file:进行不区分大小写的搜索。 示例:grep -i "hello" text.txt 将会在 text.txt 文件中搜索不区分大小写的 "hello"。

3、只显示匹配部分:

  • grep -o "pattern" file:只显示文件中匹配的部分。 示例:grep -o "John" data.txt 将只显示文件中匹配的 "John"。

4、输出行号:

  • grep -n "pattern" file:显示匹配行的行号。 示例:grep -n "example" text.txt 将会在 text.txt 文件中搜索 "example" 并显示匹配行的行号。

5、显示匹配行之前/之后的内容:

  • grep -A num "pattern" file:显示匹配行及其后 num 行的内容。
  • grep -B num "pattern" file:显示匹配行及其前 num 行的内容。
  • grep -C num "pattern" file:显示匹配行及其前后各 num 行的内容。 示例:grep -A 2 "example" text.txt 将会在 text.txt 文件中搜索 "example" 并显示匹配行及其后两行的内容。

6、使用正则表达式进行搜索:

  • grep -E "pattern" file:使用扩展正则表达式进行搜索。 示例:grep -E "[0-9]{3}-[0-9]{4}" phone.txt 将会在 phone.txt 文件中搜索符合 xxx-xxxx 格式的电话号码。
  1. 递归搜索目录:
  • grep -r "pattern" /path/to/dir:在指定目录及其子目录中递归搜索指定模式。 示例:grep -r "example" /home/user/docs 将会在 /home/user/docs 目录及其子目录中递归搜索 "example"。
  1. 排除特定文件或目录:
  • grep "pattern" ./* --exclude="pattern":排除指定模式的文件或目录。 示例:grep "example" ./* --exclude="*.txt" 将会在当前目录下搜索包含 "example" 的文件,但排除所有以 .txt 结尾的文件。

三、locate file

查找文件(快速搜索系统索引)

例子:如果你想要查找名为 "document.txt" 的文件,可以运行 locate document.txt 命令。该命令会在系统索引中快速查找该文件的位置。

四、whereis command

查找命令的二进制文件/源代码/手册

例子:如果你想要查找 "git" 命令的二进制文件、源代码或手册,可以运行 whereis git 命令。该命令将会返回相关的路径信息,例如:

bash 复制代码
git: /usr/bin/git /usr/share/man/man1/git.1.gz /usr/share/doc/git
相关推荐
初願致夕霞5 分钟前
Linux_线程
linux·运维·服务器·c++
2401_892070985 分钟前
【Linux C++ 后端实战】异步日志系统 AsyncLogging 完整设计与源码解析
linux·c++·高并发·异步日志
2301_旺仔8 分钟前
【prometheus】监控linux/windows
linux·windows·prometheus
“愿你如星辰如月”13 分钟前
从零构建高性能 Reactor 服务器:
linux·服务器·c++·websocket·tcp/ip
努力努力再努力wz17 分钟前
【C++高阶系列】外存查找的极致艺术:数据库偏爱的B+树底层架构剖析与C++完整实现!(附B+树实现的源码)
linux·运维·服务器·数据结构·数据库·c++·b树
踏着七彩祥云的小丑24 分钟前
Linux命令——开机自启配置
linux·运维·网络
clear sky .25 分钟前
[linux]buildroot什么用途
linux·运维·数据库
济61731 分钟前
I.MX6U Linux 驱动开发篇---阻塞IO实验--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
济61733 分钟前
I.MX6ULL Linux 驱动开发篇---Linux非阻塞IO实验-- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
ulias2128 小时前
Linux系统中的权限问题
linux·运维·服务器