shell脚本编程-查找命令

简介: shell脚本编程-查找命令

文件查找之find命令

查找

语法格式: find[路径][选项][操作]

选项 含义 示例
-name 根据文件名查找,不会忽略大小写 find/etc-name'*.conf'
-iname 忽略字母大小写 find.-iname aa
-perm 根据文件权限查找 find.-perm777
-prune 该选项可以排除某些查找目录
-user 根据文件属主查找
-group 根据文件属组查找
-mtime -n | +n 根据文件更改时间查找
选项 意义
-nogroup 查找无有效属组的文件
-nouser 查找无有效属主的文件
-newer file1 ! file2 查找更改时间比file1新但比file2旧的IDE文件
-type 按照文件类型查找
-size -n +n 按照文件大小查找
-mindepth n 从n级子目录开始搜索
-maxdepth n 最多搜索到n级子目录

-type选项的一些常见参数

参数 意义 举例
f 文件 find.-type f
d 目录 find.-type d
c 字符设备文件 find.-type c
b 块设备文件 find.-type b
l 链接文件 find.-type l
p 管道文件 find.-type p

-size选项常用参数

参数 意义 举例
-n 小于占用空间为n的文件 find/-size-1M
+n 大于占用空间为n的文件 find/-size+1M

-mtime选项常用参数

+ `-n`:n天以内修改的文件
+ `+n`:n天以外修改的文件

-m选项常用参数

  • -n:n分钟以内修改的文件
  • +n:n分钟以外修改的文件

-mindepth n,表示从n级子目录开始搜索

例子:在 /etc目录下的3级子目录开始搜索 find/etc-mindepth3

-maxdepth n,表示最多搜索到n-1级子目录

1. #查找当前目录下所有普通文件,但排除test目录
2. find . -path ./test  -prune -o -type f
3. #查找当前目录下所有文件,排除etc和opt目录
4. find . -path ./etc -prune -o -path ./opt -prune -o -type f
-newer file1,查找比file1更加新的文件
find/etc-newer a

查找以后的操作

-print 打印输出

-exec 对搜索到的文件进行特定的操作。格式为 -exec'command'{}\;

1. #搜索/etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除
2. find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;
-ok 和exec功能一样,只是每次操作都会给用户提示

逻辑运算符

+ `-a` 与
+ `-o` 或
+ `-not|!` 非

find、locate、whereis、which

locate命令介绍

  • 文件查找命令,所属软件包mlocate
  • 不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
  • find默认是全部匹配,locate默认是部分匹配

updatedb命令

  • 用户更新 /var/lib/mlocate/mlocate.db
  • 所使用配置文件 /etc/updatedb.conf,可以配置忽略更新的文件
  • 该命令在后台cron计划任务中定期执行

whereis命令

作用:查找某个命令的二进制程序文件、帮助文档、源代码文件

选项 含义
-b 只返回二进制文件
-m 只返回帮助文档文件
-s 只返回源代码文件

which命令

选项 含义
-b 只返回二进制文件

各命令使用场景推荐

命令 适用场景 优缺点
find 查找某一类文件,比如文件名部分一致 功能强大,速度慢
locate 只能查找某个文件 功能单一,速度快
whereis 查找程序的可执行文件,帮助文档等 不常用
which 只能查找程序的可执行文件 常用于查找程序的绝对路径
目录
相关文章
|
1天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
10 1
|
2天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
10 1
|
3天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
3天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
4天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
21 5
|
5天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
5天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
5月前
|
Linux Shell Windows
4:Bash shell命令-步入Linux的现代方法
4:Bash shell命令-步入Linux的现代方法
55 0
|
6月前
|
Shell 数据处理 Python
Python 运行 shell 命令的一些方法
Python 运行 shell 命令的一些方法
|
10月前
|
Shell 数据处理 Python
Python 运行 shell 命令的一些方法
Python 运行 shell 命令的一些方法