博客
关于我
Linux查找命令对比(find、locate、whereis、which、type、grep)
阅读量:428 次
发布时间:2019-03-06

本文共 1775 字,大约阅读时间需要 5 分钟。

Linux命令行工具解析:find、locate、whereis、which、type、grep

在Linux系统中,命令行工具是日常操作的重要组成部分。本文将为您详细介绍几种常用命令行工具,包括find、locate、whereis、which、type和grep,帮助您更高效地管理和搜索文件。


1. find:最强大的文件搜索工具

find命令是Linux系统中最强大的文件搜索工具之一。它可以帮助您在文件系统中快速定位到您需要的文件。与locate命令不同,find命令直接在磁盘上搜索文件,而不是依赖于数据库。

使用方法:

$ find [指定目录] [选项] [指定动作]
  • 指定目录:默认为当前目录,可指定多个目录。
  • 选项:用于筛选文件特征,如文件名、权限、大小、时间等。
  • 指定动作:对搜索结果进行处理,如显示文件内容、删除文件等。

常用选项:

  • -name filename:查找名为filename的文件。
  • -user username:按文件属主查找文件。
  • -mtime +10:查找10天前创建的文件。

实例:

$ find . -name "1*"   # 查找当前目录下以“1”开头的文件$ find /etc -iname "[a-z]*.sh"  # 查找/etc目录下以字母开头且以.sh结尾的文件

2. locate:基于数据库的文件搜索

locate命令实际上是find -name的另一种写法,但其工作原理不同。它基于一个数据库 /var/lib/locatedb,该数据库包含系统中所有文件的信息。由于locate命令依赖数据库,新增或修改的文件无法立即被找到,需先执行updatedb命令手动更新数据库。

使用方法:

$ locate [指定目录] [选项]
  • 指定目录:可指定任意目录或文件名。
  • 选项:用于筛选文件类型、数量等。

常用选项:

  • -i:忽略文件名大小写。
  • -r:使用正则表达式进行搜索。

实例:

$ locate etc/sh   # 查找/etc目录下以sh开头的文件$ updatedb; locate /root/text   # 更新数据库后查找新建文件

3. whereis:专注于程序和文件的搜索

whereis命令专注于程序和文件的搜索,支持二进制文件、man说明文件和源代码文件。它同样依赖数据库,新增文件无法立即被找到,需先更新数据库。

使用方法:

$ whereis [选项] [程序名]
  • 选项:如-b(查找二进制文件)、-m(查找man文件)等。
  • 程序名:需为程序名。

实例:

$ whereis find   # 查找find命令的所有相关文件$ whereis -b find   # 只查找find命令的二进制文件

4. which:查找命令的位置

which命令用于查找命令在PATH变量指定的路径中的位置。它能帮助您确定某个命令是否存在,以及执行该命令时使用的是哪个路径。

使用方法:

$ which [命令名]

实例:

$ which pwd   # 查找pwd命令的位置$ which adduser   # 查找adduser命令的位置

5. type:区分命令类型

type命令用于区分命令的类型,包括shell内建命令、别名、关键字、函数、外部命令等。它可以帮助您了解命令的具体性质。

使用方法:

$ type [选项] [命令名]
  • 选项:如-t(显示命令类型)、-p(显示外部命令的路径)等。

实例:

$ type ls   # 查看ls命令的类型$ type if   # 查看if命令的类型

6. grep:强大的文本搜索工具

grep命令是一种强大的文本搜索工具,支持正则表达式搜索。它可以在文件中快速定位到特定模式的文本。

使用方法:

$ grep [选项] [文件名]
  • 选项:如-i(忽略大小写)、-n(显示行号)等。

实例:

$ grep -n root   # 在输入中查找“root”字符串并显示行号$ grep -v /etc/passwd root   # 在/etc/passwd文件中查找未包含“root”的行

通过这些命令,您可以更高效地管理和搜索Linux系统中的文件。无论是日常操作还是系统维护,这些工具都能成为您的得力助手。

转载地址:http://ealuz.baihongyu.com/

你可能感兴趣的文章
Nginx配置参数中文说明
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>