find命令:用于在文件树中查找文件,并作出相应的处理

1、find命令的格式;

find pathname -options [-print -exec -ok ...] {}\

2、find命令的参数;

pathname: find命令所查找的目录路径。例如用“.”来表示当前目录,用“/”来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

3、find命令的选项:

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-name:按照文件名查找

-perm:按照文件权限来查找

-prune:可用使find命令不在当前制定的目录中查找,如果同时使用-depth选项,那么-prune将被find忽略

-user:按照文件属主查找

-group:按照文件属组查找

-nouser:查找无有效属主的文件

-nogroup:查找无有效属组的文件

-newer file1 file2:查找更改时间比file1新,但是比file2旧的文件

-type:查找某一类型的文件,诸如:f-普通文件、d-目录、c-字符文件、b-块设备、p-管道文件、l-符号连接

-size:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计

-fstype:查找属于某一类型文件系统的文件

-mount:查找文件时不跨越文件系统mount点

-follow:如果find命令遇到符号连接文件,就跟踪至连接所指向的文件

-cpio:对匹配的文件使用cpio命令,将文件备份到磁带设备中

-mtime -n +n:按照文件的修改时间来查找,-n文件更改时间距现在n天以内,+n文件更改时间距现在n天以前

-amin n:查找系统中最后n分钟访问的文件

-atime n:查找系统中最后n*24小时访问的文件

-cmin n:查找系统中最后n分钟被改变文件状态的文件

-ctime n:查找系统中最后n*24分钟被改变文件状态的文件

-mmin n:查找系统中最后n分钟被改变文件数据的文件

-mtime n:查找系统中最后n*24小时被改变文件数据的文件

4、使用示例:

1)查找指定时间内修改过的文件:(查找48小时内修改过的文件)

  1. [root@bogon ~]# find -atime -
  2. .
  3. ./.bash_profile

2)根据关键字查找:(查找当前目录以.log结尾的文件)

  1. [root@bogon log]# find . -name "*.log"
  2. ./audit/audit.log
  3. ./tuned/tuned.log

3)根据文件权限查找:(查找/tmp目录下权限为755的文件)

  1. [root@bogon ~]# find /tmp -perm

4)根据文件类型查找:

  1. [root@bogon ~]# find . -type d -print    ##查找当前目录下的目录
  2. .
  3. ./data
  4. [root@bogon ~]# find . ! -type d -print    ##查找当前目录下的非目录
  5. ./.bash_logout
  6. ./.bash_profile

5)根据文件大小查找:(查找当前目录下大于1k的文件)

  1. [root@bogon ~]# find -size +1000c -print
  2. .
  3. ./anaconda-ks.cfg
  4. ./.bash_history

6)根据文件名查找

  1. [root@bogon ~]# find . -name "*.txt"
  2. ./test.txt 

5、使用exec或ok来执行shell命令:

只要把想要的操作写在一个文件里,就可以用exec来配合find命令查找

    1)显示当前目录下面所有大于10k的文件,exec后面执行了一个命令,{}代表文件名

  1. [root@bogon ~]# find . -type f -size +10k -exec ls -l {} \;
  2. -rw-r--r--. 1 root root 12288 May 4 17:22 ./.test.txt.swp
  3. -rw-------. 1 root root 40960 May 4 17:25 ./.swp

2)查找/tmp下10天前的文件,删除

  1. [root@bogon ~]# find /tmp -type f -mtime +10 -ok rm {} \;

    3)备份配置文件,添加.bak扩展名

  1. [root@bogon ~]# find . -name "*.conf" -exec cp {} {}.bak \;
  2. -rw-r--r--. root root May : httpd.conf
  3. -rw-r--r--. root root May : httpd.conf.bak

    4)查找主目录下被其他用户写入的文件

  1. [root@bogon ~]# find ~ -perm - -exec chmod o-w {} \;

 6、-print 匹配条件:

  简写表达式按顺序求值, -a 和 -o 都是短路求值。

    1)忽略某个目录(在httpd目录下查找文件但不希望在/httpd/conf目录下查找)

  1. [root@bogon etc]# find httpd -path "httpd/conf" -prune -o -print
  2. httpd
  3. httpd/conf.d
  4. httpd/conf.d/README
  5. httpd/conf.d/autoindex.conf

    2)匹配多个条件,采用OR条件操作

  1. [root@bogon ~]# find . \( -name "*.txt" -o -name "*.conf" \) -print
  2. ./httpd.conf
  3. ./test.txt

7、xargs命令:

  有些命令不能接受过多参数,此时命令执行可能会失败,错误信息通常是“参数列太长”或“参数列溢出”,这就是xargs命令的用处所在
  find | xargs COMMAND

  示例:在当前目录下所以普通文件中过滤“nologin”这个词

  1. [root@bogon ~]# find . -type f -print |xargs grep "nologin"
  2. Binary file ./.test.txt.swp matches
  3. ./test.txt:x:::bin:/bin:/sbin/nologin
  4. ./test.txt:on:x:::daemon:/sbin:/sbin/nologin

8、locate命令:

  查询系统上预建的文件索引数据库,依赖于先构建索引,构建过程需要遍历整个根文件系统,极消耗资源。

  工作特点:查找速度快,模糊查找,非实时查找。

  -i  执行区分大小写的搜索

  -n x   只列举前x个匹配选项  

linux文件查找-find命令的更多相关文章

  1. linux文件查找find命令

    linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find  [option ...

  2. linux 文件查找 find命令详解

    一,从索引库查找文件:locate 索引库:操作系统会周期性的遍历根文件系统,然后生成索引库 手动更新索引库:updatedb 语法:locate [OPTION]... PATTERN... 只匹配 ...

  3. 13.Linux文件查找-find命令

    find 命令的基本语法如下: 命令 路径 选项 表达式 动作 find [path...] [options] [expression] [action] 查找 地区 妹纸 18-25岁 约? (1 ...

  4. Linux下的文件查找类命令(转载)

    如何快速有效的定位文件系统内所需要查找的文件呢?Linux为我们提供了一些文件查找类的命令,我们需要掌握以下几个命令: http://blog.csdn.net/sailor201211/articl ...

  5. Linux文件查找命令find,xargs详述【转】

    转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...

  6. Linux文件查找命令find用法整理(locate/find)

    Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...

  7. Linux文件查找.md

    Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 w ...

  8. 第1章 Linux文件类基础命令

    1. 关于路径和通配符 Linux中分绝对路径和相对路径,绝对路径一定是从/开始写的,相对路径不从根开始写,还可能使用路径符号. 路径展开符号: . :(一个点)表示当前目录 .. :(两个点)表示上 ...

  9. linux 文件查找,which,whereis,locate,find

    linux 文件查找,which,whereis,locate,find 一:which 主要用于查找可执行命令的所在位置: 如图,查找命令 ls的目录: 二:whereis 主要用于查找命令的帮助文 ...

随机推荐

  1. 交叉编译调试qemu_guest_agent

    Winodws版本 编译环境Fedora23 下载VSS SDK的setup.exe 下载地址 提取VSS SDK头文件 将下面的代码保存成extract-vsssdk-headers.sh脚本,然后 ...

  2. Linux上安装Apache服务器

    http://httpd.apache.org/download.cgi httpd-2.4.29.tar.gz #创建httpd用户 groupadd httpd useradd -g httpd ...

  3. IT兄弟连 JavaWeb教程 监听器4

    感知Session绑定事件的监听器 保存在Session域中的对象可以有多种状态:绑定(session.setAttribute("bean",Object)到Session中:从 ...

  4. 简述RadioGroup和RadioButton的使用

    简述RadioGroup和RadioButton的使用 在项目中有身份选择的选项,需要用到RadioGroup和RadioButton,这里做个记录,和大家交流一下. 话不多说,一起看代码 XML代码 ...

  5. ASPNET Core 2.x中的Kestrel服务器

    原文链接 Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器,libuv是一个跨平台的异步I/O库.ASP.NET Core模板项目使用Kestrel作为默认的web服务 ...

  6. Java基础笔记(四)——命名规则、数据类型

    标识符即Java程序中需要自定义的名称,如变量名.方法名.类名.包名.工程名等. 标识符的命名规则: 1.可由字母.数字.下划线(_)和美元符($)组成,不能以数字开头. 2.严格区分大小写. 3.不 ...

  7. 【填坑】loj6159. 「美团 CodeM 初赛 Round A」最长树链

    水一水 枚举各个质数,把是这个数倍数的点留下,跑直径,没了 #include <bits/stdc++.h> using namespace std; int h,t,n,p,q,M,N; ...

  8. 从两个不同的ServiceProvider说起

    从两个不同的ServiceProvider说起 我们一致在说 ASP.NET Core广泛地使用到了依赖注入,通过前面两个系列的介绍,相信读者朋友已经体会到了这一点.由于前面两章已经涵盖了依赖注入在管 ...

  9. css文本换行的问题

    今天敲代码的时候发现了一个一直都没太注意的小问题,当我在一个200px的div中写了一长串的‘f ‘时发现没有换行 但加上空格或标点符号后就能自动换行 原来浏览器把它当成了一串完整的单词,所以默认不换 ...

  10. CentOS6.5下如何正确下载、安装Intellij IDEA、Scala、Scala-intellij-bin插件、Scala IDE for Eclipse助推大数据开发(图文详解)

    不多说,直接上干货! 第一步:卸载CentOS中自带openjdk Centos 6.5下的OPENJDK卸载和SUN的JDK安装.环境变量配置   第二步:安装Intellij IDEA 若是3节点 ...