3.shell编程-文件查找之find命令

3.1.语法格式

find [路劲][选项][操作]

选项参数对照表

3.2.-name

查找/etc/目录下以.conf结尾的文件

find /etc/ -name "*.conf"

-iname   不区分大小写

find /etc/ -iname "*.conf"

-user      查找当前目录为root用户的文件

find ./ -user root

3.3.-type

文件的类型

  • f     文件
  • d    目录
  • c    字符设备文件
  • b    块设备文件
  • l     链接文件
  • p    管道文件 
find . -type f

find . -type d

3.4.-size

文件大小

  • -n    小与n的文件
  • +n   大于n的文件

查找/etc目录下小与100k的文件

find /etc -size -100k

查找/etc目录下大于1M的文件

find /etc -size +1M

3.5.-mtime

修改时间

  • -n    n天以内修改的文件
  • +n   n天以外修改的文件
  • n     正好n天修改的文件

查找/etc目录下5天之内修改并且以conf结尾的文件

find /etc -mtime -5 -name ‘*.conf‘

查找/etc目录下10天之前修改并且属主为root的文件

find /etc -mtime +10 -user root

3.6.-mmin

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

修改/etc目录下30分钟以内修改的目录

find /etc -mmin -30 -type d

3.7.-mindepth

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

find /etc -mindepth 3 -type -f

-madepth n

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

3.8.操作-exec

对搜索的文件常用操作

  • -print   打印输出
  • -exec    对文件执行特定的操作
  • -ok        和exec功能意义,只是每次操作都会给用户提示

-exec的格式为

-exec ‘command‘ {} \

例子一:

搜索/home/shell_learn/下的文件,文件名以.sh结尾,且修改时间在一个星期之内的,然后将其删除

#打印
find /home/shell_learn/ -type f -name ‘*.sh‘ -mtime -7 -print

#复制
find /home/shell_learn/ -type f -name ‘*.sh‘ -mtime -7 -exec cp {} /home/shell_learn/test/ \;

#删除
find /home/shell_learn/ -type f -name ‘*.sh‘ -mtime -7 -exec rm -rf {} \;

3.9.locate命令

locate不同于find命令是在整块磁盘中搜索,locate命令是在数据库文件中查找

find是默认全局匹配,locate则是默认部分匹配

updatedb命令

  • 用户更新/var/lib/mlocate/mlocate.db
  • 所使用的配置文件/etc/updatedb.conf

实例:updatedb命令把文件更新到数据库(默认是第二天系统才会自动更新到数据库),否则locate查找不到

[[email protected]_0_9_centos shell_learn]# touch 789.txt
[[email protected]_0_9_centos shell_learn]#
[[email protected]_0_9_centos shell_learn]# locate 789.txt
[[email protected]_0_9_centos shell_learn]#
[[email protected]_0_9_centos shell_learn]# updatedb
[[email protected]_0_9_centos shell_learn]#
[[email protected]_0_9_centos shell_learn]# locate 789.txt
/home/shell_learn/789.txt
[root@VM_0_9_centos shell_learn]#

3.10 .whereis命令

实例

[[email protected]_0_9_centos shell_learn]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@VM_0_9_centos shell_learn]#
[[email protected]_0_9_centos shell_learn]# whereis -b mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql
[root@VM_0_9_centos shell_learn]#
[[email protected]_0_9_centos shell_learn]# whereis -m mysql
mysql: /usr/share/man/man1/mysql.1.gz
[root@VM_0_9_centos shell_learn]# 

3.11.which

作用:仅查找二进制程序文件

[[email protected]_0_9_centos shell_learn]# which mysql
/usr/bin/mysql
[root@VM_0_9_centos shell_learn]# 

3.12.各查找命令总结

原文地址:https://www.cnblogs.com/derek1184405959/p/11100469.html

时间: 2024-10-14 10:14:38

3.shell编程-文件查找之find命令的相关文章

shell脚本--文件查找之find命令

首先是通过文件名称来查找,需要使用一个-name参数. 查询以  .txt结尾的文件,和以 t 开头的文件: [email protected]:~/test$ ls one.txt three.txt two.txt [email protected]:~/test$ find ./ -name '*.txt' ./two.txt ./one.txt ./three.txt [email protected]:~/test$ find ./ -name 't*' ./two.txt ./thr

shell文件查找和压缩命令

locate命令 1.locate filename     模糊匹配 只要文件名中包含关键字即可     非实时查找,速度比find快.     依靠索引数据库 /var/lib/mlocate/mlocate.db     每天自动运行一次来更新数据库.     updatedb 更新索引数据库 2.适合搜索变化不太频繁的文件.对系统的资源消耗不大. 3.实例 1.    locate -r "^/etc/.*\.conf$" find命令 实时查找工具,通过遍历指定路径来完成文件

[ SHELL编程 ] 文件内容大小写替换

shell编程经常会碰到字符串.文件内容大小写的转换,在不同的场景下选择合适的命令可以提高编程效率. 适用场景 需大小写转换的文件内容或字符串 字符串大小写替换 小写替换大写 echo "hello world" | tr '[a-z]' '[A-Z]' echo "hello world" | tr '[:lower:]' '[:upper:]' 大写替换小写 echo "hello world" | tr '[A-Z]' '[a-z]' ec

shell编程中for/while循环命令

一.for命令 在shell编程中,有时我们需要重复执行一直命令直至达到某个特定的条件,bash shell中,提供了for命令,允许你创建一个遍历一系列值的循环,每次迭代都通过一个该系列中的值执行一组预定义的命令. for的基本格式: for var in list do commands done 在list中,你提供了迭代中要用的一系列值.在每个迭代中,变量var包含列表中的当前值,第一个迭代会适用列表中的第一个值,第二个迭代使用第二个值,以此类推,直至列表中的所有值都过一遍. 1.1读取

文件查找及find命令详解

find 1.文件查找: 在文件系统上查找符合条件的文件的过程: 2.文件查找:locate, find locate: 非实时查找工具:依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新此数据库(updatedb):查找速度快:模糊查找: find:实时查找:查找速度略慢:精确查找: 3.find命令使用方法: find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径: 查找条件:指定的查找标准,可以根据文件名.大小.

shell编程:定义简单标准命令集

shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程,如Linux中的脚本编程. shenll运行原理:由消息接收.解析.执行构成的死循环. 命令行shell:该死循环包含3个模块(命令接收.命令解析.命令执行),命令行有一个标准命令集,用户输入的命令若不是标准命令,则提示用户这不是一个合法命令行,然后重新回到命令行让用户输入下一个命令. 常见的sh

Linux文件查找--location find 命令

文件查找grep egrep fgrep 文本查找 文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # 手动生成文件数据库 updatedb: find: 实时查找,精确, 速度慢 遍历指定目录中的所有的文件完成查找: 支持众多查找标准 find 查找路径 查找标准 查找到以后的处理运作 查找路径:默认为当前目录 查找标准:默认为指定路径下的所有文件 处理运作:默认为显示 打印 匹配标准: -name 'FILENAME': 对文件名进行精确查找 文件名通配:

Linux Shell编程笔记一:相关命令

相关出处请查看:http://www.cnblogs.com/stephen-liu74/archive/2011/11/01/2202027.html 零.shell中的内部变量: 1.    $?:    表示shell命令的返回值.2.    $$:    表示当前shell的pid.3.    $!:    最后一个放入后台作业的PID值.4.    $0:    表示脚本的名字.5.    $1--$9,${10}: 表示脚本的第一到九个参数,和第十个参数.6.    $#:    表

linux命令:find文件查找工具 locate命令查找

     find命令简介: 实时.精确.支持众多查找标准 遍历指定目录中的所有文件完成查找,速度慢: 1.命令格式: locate filename 直接跟需要查找的文件  eg locate passwd  系统文件数据库中所有 包含passwd的文件. find 查找路径 查找标准 查找到以后的处理动作  查找路径:默认为当前目录  查找标准:默认为指定路径下的所有文件  处理动作:默认为显示到屏幕上 eg:find /etc -name passwd  表示在etc目录下查找名字为pas