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查找不到

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

3.10 .whereis命令

实例

[root@VM_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]#
[root@VM_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]#
[root@VM_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

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

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

3.12.各查找命令总结

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

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

    首先是通过文件名称来查找,需要使用一个-name参数. 查询以  .txt结尾的文件,和以 t 开头的文件: ubuntu@ubuntu:~/test$ ls one.txt three.txt tw ...

  2. Linux输入输出重定向和文件查找值grep命令

    Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...

  3. shell文件查找和压缩命令

    locate命令 1.locate filename     模糊匹配 只要文件名中包含关键字即可     非实时查找,速度比find快.     依靠索引数据库 /var/lib/mlocate/m ...

  4. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

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

    shell编程经常会碰到字符串.文件内容大小写的转换,在不同的场景下选择合适的命令可以提高编程效率. 适用场景 需大小写转换的文件内容或字符串 字符串大小写替换 小写替换大写 echo "h ...

  6. shell编程必须要掌握的命令-xargs

    一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情.纯属个人理解,哈哈.不管是交互式的shell,还是非交互的shel ...

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

    shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...

  8. 文件查找和比较命令 来自: http://man.linuxde.net/find

    文件查找和比较1.find命令,用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时不设置任何参数,则find命令则在当前目录下查找子目录与文件.并且将查到的子 ...

  9. shell脚本--内容查找之grep命令

    grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...

随机推荐

  1. C#:ref关键字和out关键字的区别

    1.在不使用关键字(比如ref关键字.out关键字等)修饰函数的情况下,大部分函数的参数是以值传递的方式,也就是说,“调用函数”在使用参数(比如myNumber)时,是把该参数复制多一份,然后将其传递 ...

  2. Extra:Cg Math Functions

    常用Cg函数 数学函数 abs(x):绝对值 // float类型的实现 float abs(float x) { return max(-a, a); } sin(x):正弦,输入为弧度 // fl ...

  3. 手动下载jar包导入mvn repo的方法

    转载自:http://www.360doc.com/content/19/1101/16/67125028_870487351.shtml 常用Maven仓库网址:http://mvnreposito ...

  4. java中的对象、类、包、模块、组件、容器、框架、架构的概念入门

    在Java中有那么一些概念:对象.类.包.模块.组件.容器.框架.这些概念都有一个共同的特点,就是[容纳]. 对象(Object) 在Java的世界里,对象是通过属性和方法来分别对应事务所具有的静态属 ...

  5. Spring Boot2.0以上版本EmbeddedServletContainerCustomizer被WebServerFactoryCustomizer替代

    在Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCusto ...

  6. Python: 截屏

    最近项目中想实现截屏功能,使用的笔记本是高清屏,实际屏幕设置成了150%,所以在截屏的时候遇到个各种问题. 最开始使用PIL ImageGrab来截取屏幕,如果本来是100%的设置没有问题,能截取到全 ...

  7. Centos7 日志查看工具

    1  概述     日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息.Systemd统一管理所有Unit的启动日志.带来的好处就是,可以 ...

  8. Scanner 中next()和nexline()方法的区别

      在java实现字符窗口的输入时,很多人更喜欢选择使用扫描器scanner,它操作起来比较简单.在编程的过程中,我发现用scanner实现字符串的输入有两种方法,一种是next(),另一种是next ...

  9. Spring Boot 实战 入门

    目前没有系统学习过 Spring 框架,参与工作时,直接参与到了 Spring Boot 项目的开发.目前还比较菜,所以,你要是和我一样,不妨也跳过 Spring 框架的学习,直接学习 Sring B ...

  10. ES6 Class(类)(九)

    一.Class类1.构造函数 constructor(){} 说明:a.如果没有重新定义带参数的构造函数,类会默认为我们提供一个不带参数的隐式构造函数b.在创建类的实例时会自动调用类中的构造函数 2. ...