Linux 命令 - find: 搜索文件
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: 搜索文件的更多相关文章
- Linux命令_搜索文件
一.用which命令查找可执行文件的绝对路径 which命令用来查找PATH环境变量中出现的路径下的可执行文件. 二.用whereis命令查找文件 whereis命令通过预先生成的一个文件列表库查找与 ...
- 分布式进阶(十) linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel
linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Li ...
- Linux 命令安装bin文件
Linux 命令安装bin文件 安装命令: //1,增加文件的可执行权限 chmod a+x jdk-6u30-linux-x64.bin //2,程序即安装在执行命令的文件夹下 ./jdk-6u30 ...
- Linux命令-自动挂载文件/etc/fstab功能详解
Linux命令-自动挂载文件etcfstab功能详解 一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系 ...
- 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]
博客园 首页 新随笔 联系 订阅 管理 随笔 - 322 文章 - 0 评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转] 一./etc/fstab文件的作用 ...
- [转载] Linux中的搜索文件命令
搜索文件用处很大,我们往往需要知道一个文件存放在什么地方,我们又知道Linux是命令强大的一个系统,所以也有好多非常优秀的搜索命令.通常find不常用,因为速度慢,耗费硬盘空间.通常我们先使用wher ...
- linux 命令案例学习——文件搜索
两个搜索文件的工具 locate ——仅仅通过文件名查找文件 find ——依据文件的各种属性在既定目录(包括子目录)里查找 一个通常与文件搜索命令一起使用.处理搜索结果文件列表的命令 xa ...
- Linux下怎样搜索文件
使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索.搜索文件的命令为”find“:”locate“:”whereis“:”which“:”type“ 方法/步骤 ...
- Linux 入门记录:十七、Linux 命令行文本/文件处理工具
一.文件浏览 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾 ...
随机推荐
- android 脸部抠图
原帖:http://www.eoeandroid.com/thread-205445-1-1.html package com.face; import android.app.Activity; i ...
- ntdll.dll函数原型
/*NTDLL Base Functions*/NTSYSAPI NTSTATUS NTAPI NtAcceptConnectPort( OUT PHANDLE PortHandle, IN PVOI ...
- CSS 的 appearance 属性
在 Firefox 1.0+,Chrome 1.0+ 和 Safari 3.0+ 中,我们可以使用 -moz-appearance 或者 -webkit-appearance 属性让元素模仿系统原生控 ...
- OpenNebula Restfull 接口请求示例
Fri Jun 20 07:28:20 2014 [I]: 10.0.2.2 - - [20/Jun/2014 07:28:20] "POST /vmtemplate HTTP/1.1&qu ...
- Vieta定理
一元$n$次方程$$P(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+\cdots+a_{a}x+a_{0}=a_{n}(x-x_{1})(x-x_{2})\cdots (x-x_{n}) ...
- 浅谈IT员工管理
本人尽管还不是管理人员,但也管理过学弟们(不是同校.仅仅是工作中同事,为了好称呼叫学弟).也被管理着,工作也好多年了.今天又感而发.想来谈谈假设管理好员工(在此声明,我仅仅是发表个人意见哦.不要喷.哈 ...
- Uestc_suibian 暑假集训总结
唉,终于组队了,终于可以只BB了,我就BB,我就不上! 和Xiper以及chenxh组队了- 下面是总结: day1 第一天吃饱喝足,然后就上路了,我一开始就看到了C题大水题,但是我不敢想象这道题居然 ...
- C#实现汉诺塔问题
汉诺塔的由来:汉诺塔是源自印度神话里的玩具.上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且 ...
- Java 中队列的使用
刚才看见群里的一个朋友在问队列的使用,确实在现实的写代码中非常少使用队列的,反正我是从来没使用过.仅仅是学数据结构的时候学过. 以下是我写的一个小样例,希望有不足之处请提出改正.O(∩_∩)O~ 看代 ...
- HomeSnap
http://arnauddegiuli.github.io/HomeSnap/ OnBufferingUpdateListener https://github.com/LuckyJayce/Mat ...