参考链接:https://mp.weixin.qq.com/s/y8LeZ0-9D56TWsD-ivPaHQ
一.按文件名称查找
按照文件名称查找是 find 最常见的用法,需要注意的是,搜索的文件名必须完全匹配,才能找到对应的文件。
1.查找当前目录下所有的 java文件
find . -name '*.java'
2.在 etc目录下 ,查找大写字母开头的txt文件
find /etc -name "[A-Z]*.txt" -print
在etc目录下,查找小写字母开头的log文件
find /etc -name "[a-z]*.log" -print
3.在当前目录下查找不是out开头的txt文件
find . -name "out*" -prune -o -name "*.txt" -print
4.在当前目录除git子目录外查找txt文件
find . -path "./git" -prune -o -name "*.txt" -print
二.按文件类型查找
1.在当前目录下,查找软连接文件
find . -type l -print
2.在当前目录下,查找log结尾的普通文件,f 表示普通文件类型
find . -type f -name "*.log"
三.按文件大小查找
1.查找小于60K的文件
find . -size -64k -print
2.查找大小超过200M的文件
find . -size +200M -type f -print
四.按时间查找
1.查找2天内被修改过的文件
find . -mtime -2 -type f -print
2.查找 2 天前被更改过的文件,-mtime
表示内容修改时间
find . -mtime +2 -type f -print
3.查找一天内被访问的文件,-atime
表示访问时间
find . -atime -1 -type f -print
4.查找一天内状态被改变的文件,-ctime
表示元数据被变化时间
find . -ctime -1 -type f -print
5.查找比 chopin.txt 新的文件
find . -newer "chopin.txt" -type f -print find . ! -newer "chopin.txt" -type f -print # 旧
五.总结归纳
find
命令是 Linux 命令中最有用的命令之一,它的功能非常强大,且语法复杂。其实我们不一定需要了解它的所有细节,掌握上述实战案例中的常见用法,足够满足日常工作中的大部分需求。
下边我们一起来总结下 find 命令常见用法,加深对 find 使用方法的理解。
命令格式
find path -option [-exec ...]
按文件名查找
-name
:按照文件名称查找,准确匹配;-iname
:不区分文件名的大小写;-inode
:按照文件 inode 号查找
按照文件类型查找
按照文件类型查找,可以使用 -type
选项,具体支持的文件类型如下:
f
:普通文件d
:目录文件l
:链接文件s
:套接字文件p
:管道文件b
:块设备文件,比如:磁盘c
:字符设备文件,比如:键盘、鼠标、网卡
按照文件从属关系查找
-user
:以用户名查找-group
:以组名查找-uid
:以用户 ID 查找-gid
:以组 ID 查找-nouser
:查找没有属主的文件-nogroup
:查找没有属组的文件
按照文件大小查找
按照文件大小查找功能十分常用,用 -size
选项,选项后边指定大小 1024M
,表示大小的格式有如下几种:
-5M
:查找小于 5M 的文件+5M
:查找大于 5M 的文件5M
:查找大小为 5M 的文件
单位支持的有 c(字节)
、k
、M
、G
等,需要注意的是默认单位并不是字节,而是b
,大小为 512 字节。