一、查找文件

locate

locate命令会查找其路径名数据库,输出所有包含查找字符串的匹配项:

locate settings.xml

updatedb

updatedb用来更新路径名数据库 (默认在linux系统每天以定时任务运行),可手动执行;locate命令的数据库是通过另一个命令updatedb创建的。它通常作为cron作业,由守护进程cron定期执行。大多数包含locate命令的系统每天执行一次updatedb命令。

updatedb

find

根据各种属性在指定目录(及其子目录)中查找文件;并支持各种选项(option)、测试条件(test)以及操作(action)来实现多种查找功能;

#在当前目录下 查找txt后缀的文件
find ./ -name '*.txt'

测试条件

在这里插入图片描述

#type测试条件:当前目录下查找所有文件夹
find ./ -type d

操作符

find命令提供了一种方式,可以使用逻辑操作符(简称操作符)组合多个测试条件,从而表达更为复杂的逻辑关系。
在这里插入图片描述
注意:

  • 括号与条件之间前后要有空格,否则会报错。
  • 括号在shell中需转义
#组合测试条件,type和name:查找type为f 且后缀为pub的文件
find ./  \( -type f \) -and \( -name '*.pub' \)

操作

预定义操作

在这里插入图片描述

find ~ -print
自定义操作

除了预定义操作,我们还可以针对查找结果调用任意命令。传统的实现方式是使用-exec操作。其用法如下:

-exec command {} ;

在这里,command是命令名。{}是代表当前路径名的符号。;作为分隔符,表示命令结束。因为{}和;对Shell具有特殊含义,所以必须对其进行标注或转义。

# 多当前文件夹下  后缀为txt的文件,进行创建.bak文件
find ./ -type f -name '*.txt' -exec touch '{}.bak' ';'

find命令选项(常用)

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐