find 命令可以依据文件的各种属性在既定的目录(及其子目录)里搜索文件。

命令格式

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

命令参数

test 项

-cmin n
  匹配 n 分钟前改变状态(内容或属性)的文件或目录。如果不到 n 分钟,就用 -n,如果超过 n 分钟,就用 +n。

-cnewer file
  匹配内容或属性的修改时间比文件 file 更晚的文件或目录。

-ctime n
  匹配系统中 n*24 小时前文件状态改变(内容、属性、访问权限等)的文件或目录。

-empty
  匹配空文件及空目录。

-group name
  匹配属于 name 组的文件或目录,name 可以描述为组名或改组的 ID。

-iname pattern
  与 -name 选项功能类似只是不区分大小写。

-inum n
  匹配索引节点是 n 的文件。该 test 选项有助于查找某个特定索引节点上的所有硬链接。

-mmin n
  匹配 n 分钟前内容被修改的文件或目录。

-mtime n
  匹配 n*24 小时前只有内容被更改的文件或目录。

-name pattern
  匹配有特定通配符模式的文件或目录

-newer file
  匹配内容的修改时间比 file 文件更近的文件或目录。这在编写 shell 脚本进行文件备份的时候非常有用。每次创建备份时,更新某个文件(比如日志),然后用 find + 此参数选项来确定上一次更新后哪些文件改变了。

-nouser
  匹配不属于有效用户的文件或目录。该 test 选项可以用来查找那些属于已删除账号的文件,也可以用来检测攻击者的活动。

-nogroup
  匹配不属于有效组的文件或目录

-perm mode
  寻找访问权限与既定模式匹配的文件或目录。既定模式可以以八进制或符合的形式表示。

-samefile name
  与 -inum 选项类似。匹配与 file 文件用索引编号相同的的文件。

-size n
  匹配大小为 n 的文件。+n 表示大于 n,-n 表示小于 n。find 支持的计量单位有 b(表示 512 字节的块,默认单位)、c(字节)、w(两个字节的字)、k(KB)、M(MB)和 G(GB)。

-type c
  匹配指定类型的文件。find 支持的文件类型有 b(块设备文件)、c(字符设备文件)、d(目录)、f(普通文件)和 l(符号链接)。

-user name
  匹配属于 name 用户的文件或目录。name 可以描述为用户名或该用户的 ID。

action 项

-delete
  删除匹配文件。

-ls
  对匹配文件执行 ls 操作,以标准格式输出其文件名及所要求的其他信息。

-print
  将匹配的文件的全部路径以标准形式输出。当没有指定任何具体操作是,该操作是默认操作。

-quit
  一旦匹配成功便退出。

-exec command {} ;
  自定义操作,command 表示要执行的操作命令名,{} 花括号表示当前路径,而分号作为必需的分隔符表示命令结束。

option 项

-depth
  引导 find 程序处理目录前先处理目录内文件。当指定 -delete 操作时,该参数选项会自动调用。

-maxdepth levels
  当执行测试条件行为时,设置 find 程序陷入目录数的最大级别数。

-mindepth levels
  在应用测试条件和行为时,设置 find 程序陷入目录数的最小级别数。

-mount
  引导 find 不去遍历挂载在其他文件系统上的目录。

-noleaf
  指导 find 程序不要基于 “正在搜索类 UNIX 文件系统” 的假设来优化它的搜索。当扫描 DOS/Windows 文件系统和 CD 时,会用到该选项。

实例

a) 列出目录 ~/redis/redis-3.0.4/utils/ 所有的文件列表清单。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/
/home/huey/redis/redis-3.0.4/utils/
/home/huey/redis/redis-3.0.4/utils/cluster_fail_time.tcl
/home/huey/redis/redis-3.0.4/utils/redis_init_script
/home/huey/redis/redis-3.0.4/utils/mkrelease.sh
...

b) 查找目录 ~/redis/redis-3.0.4/utils/ 的所有目录。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/ -type d
/home/huey/redis/redis-3.0.4/utils/
/home/huey/redis/redis-3.0.4/utils/hyperloglog
/home/huey/redis/redis-3.0.4/utils/create-cluster
/home/huey/redis/redis-3.0.4/utils/lru

c) 查找目录 ~/redis/redis-3.0.4/utils/ 下所有以 .sh 为后缀且大于 1KB 的普通文件。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/ -type f -name "*.sh" -size +1k
/home/huey/redis/redis-3.0.4/utils/install_server.sh

d) 查找目录 ~/redis/redis-3.0.4/src/ 下模式为 0775 或 0755 的文件(注意命令行的空格)。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ \( -type f -perm 0775 \) -or \( -type f -perm 0755 \)
/home/huey/redis/redis-3.0.4/src/redis-benchmark
/home/huey/redis/redis-3.0.4/src/mkreleasehdr.sh
/home/huey/redis/redis-3.0.4/src/redis-check-dump
/home/huey/redis/redis-3.0.4/src/redis-check-aof
/home/huey/redis/redis-3.0.4/src/redis-server
/home/huey/redis/redis-3.0.4/src/redis-sentinel
/home/huey/redis/redis-3.0.4/src/redis-trib.rb
/home/huey/redis/redis-3.0.4/src/redis-cli

e) 对匹配文件执行 ls 操作。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -ls
919417 6316 -rwxr-xr-x 1 huey huey 6466357 Sep 26 13:20 /home/huey/redis/redis-3.0.4/src/redis-sentinel

f) 删除匹配文件。

[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -delete

g) 对匹配文件自定义操作,将匹配的文件拷贝至指定的目录。

[huey@huey-K42JE ~]$ mkdir ~/tmpdir
[huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -exec cp '{}' ~/tmpdir ';'
[huey@huey-K42JE ~]$ ll ~/tmpdir/
total 6316
-rwxr-xr-x 1 huey huey 6466357 Oct 16 10:04 redis-sentinel

Linux 命令 - find: 搜索文件的更多相关文章

  1. Linux命令_搜索文件

    一.用which命令查找可执行文件的绝对路径 which命令用来查找PATH环境变量中出现的路径下的可执行文件. 二.用whereis命令查找文件 whereis命令通过预先生成的一个文件列表库查找与 ...

  2. 分布式进阶(十) linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel

    linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Li ...

  3. Linux 命令安装bin文件

    Linux 命令安装bin文件 安装命令: //1,增加文件的可执行权限 chmod a+x jdk-6u30-linux-x64.bin //2,程序即安装在执行命令的文件夹下 ./jdk-6u30 ...

  4. Linux命令-自动挂载文件/etc/fstab功能详解

    Linux命令-自动挂载文件etcfstab功能详解 一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系 ...

  5. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 322  文章 - 0  评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转]     一./etc/fstab文件的作用 ...

  6. [转载] Linux中的搜索文件命令

    搜索文件用处很大,我们往往需要知道一个文件存放在什么地方,我们又知道Linux是命令强大的一个系统,所以也有好多非常优秀的搜索命令.通常find不常用,因为速度慢,耗费硬盘空间.通常我们先使用wher ...

  7. linux 命令案例学习——文件搜索

    两个搜索文件的工具 locate  ——仅仅通过文件名查找文件 find     ——依据文件的各种属性在既定目录(包括子目录)里查找 一个通常与文件搜索命令一起使用.处理搜索结果文件列表的命令 xa ...

  8. Linux下怎样搜索文件

    使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索.搜索文件的命令为”find“:”locate“:”whereis“:”which“:”type“   方法/步骤   ...

  9. Linux 入门记录:十七、Linux 命令行文本/文件处理工具

    一.文件浏览 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾 ...

随机推荐

  1. hive 子查询特别分析

      Hive只支持在FROM子句中使用子查询,子查询必须有名字,并且列必须唯一:SELECT ... FROM(subquery) name ... 确认下是否一定要求列必须唯一?      建表语句 ...

  2. Enterprise Library 服务问题

    在使用Enterprise Library而没有注册服务的时候会出现这样的问题,"Editing Post "Failed to create instances of perfo ...

  3. Usage of readonly and const

    Many new learners can not make sure the usage scenarios of readonly and const keywords. In my opinio ...

  4. Hibernate 中createQuery与createSQLQuery

    本文原址 : http://stta04.javaeye.com/blog/377633 hibernate 中createQuery与createSQLQuery 昨晚帮同事看代码到凌晨2点多,今早 ...

  5. 用shader使图片背景透明

    转自:http://blog.csdn.net/dawn_moon/article/details/8631783 好吧,终于抽时间写这篇文章了. 手头上有很多人物行走图,技能特效图等,但这些图都有个 ...

  6. 2014广州Java岗位面试汇总

    本文记录了最近一些朋友提供的面试经历,真实数据,仅供广州求职的朋友参考.为行文方便,一律用主语”我“进行.部分词语可能造成读者不良反应,敬请留意. 1  广州沣首信息科技有限公司 公司所在区域相对较偏 ...

  7. python的一些总结3

    好吧 刚刚的2篇文章都很水.. 这篇 也是继续水 在 templates 右键新建 html 文件:如 index.html (输入以下代码) <!DOCTYPE html> <ht ...

  8. 微信公众平台Token验证失败的解决办法

    微信公众平台Token验证失败的解决办法 1.可查看url和token是否正确 2.查看服务器端口是否为80端口 3.你可以通过记录log日志来判断是否接受到微信提交过来的信息 1.$fp=fopen ...

  9. codeforces 468B 2-sat

    今天明确了2-SAT; 表示对一对整数之间的关系是否存在 #include<cstdio> #include<algorithm> #include<iostream&g ...

  10. OpenGL 3:画圆

    这次使用OpenGL画圆,而且中间画一个实心的五角星. 1. 画实心五角: 由于之前使用Polygen画会出现故障,或许是各个GPU硬件也会不一样的,所以使用Polygen画实心五角星并不可靠: 所以 ...