Linux的find命令详情,Linuxfind命令详情


Linux的find命令

find命令是用来在指定目录下查找文件的。任何位于参数之前的字符串都将视为欲查找的目录名。

如果使用该命令,不设置任何参数,则find命令将在当前目录下查找子目录和文件。并且查找到的子目录和文件全部进行显示。

find语法

find (选项) (参数)

常用的选项参数

-name <范本样式>:指定字符串作为寻找文件或目录的范本样式

-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式

-size<文件大小>:查找符合指定的文件大小的文件

-typ<文件类型>:只寻找符合指定的文件类型的文件

-path<范本样式>:指定字符串作为寻找目录的范本样式

-perm<权限数值>:查找符合指定的权限数值的文件或目录

-help或——help:在线帮助

-false:将find指令的回传值皆设为False

-true:将find指令的回传值皆设为True

-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算

-cmin<分钟>:查找在指定时间之时被更改过的文件或目录

atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算

ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算

-gid<群组识别码>:查找符合指定之群组识别码的文件或目录

-group<群组名称>:查找符合指定之群组名称的文件或目录

uid<用户识别码>:查找符合指定的用户识别码的文件或目录

user<拥有者名称>:查找符和指定的拥有者名称的文件或目录

还有一些参数忽略为列举:

具体参考:Linux命令大全—find命令

实例

根据文件或者正则表达式进行匹配

列出当前目录及子目录下的所有文件和文件夹
find .
在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"

同上,忽略大小写,使用iname。

find /home -iname "*.txt"
在当前目录及子目录查找所有以.txt和.cfg结尾的文件
find . -name "*.txt" -o -name "*cfg"
匹配文件路径或者文件
find /usr/ -path "*local*"
基于正则表达式匹配文件路径
find . -regex ".*\(\.txt\|\.pdf\)$"
忽略大小写的正则匹配
find . -iregex ".*\(\.txt\|\.pdf\)$"

否定参数

find /home ! -name "*.txt"

根据文件类型进行查找

find . -type 类型参数

类型参数列表:

f:普通文件

l:符号连接

d:目录

c:字符设备

b:块设备

s:套接字

p:Fifo

eg:

find . -type f

find . -type d

根据文件时间戳进行搜索

find . -type f 时间戳

Linux文件系统每个文件都有三种时间戳

访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。

修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。

变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

搜索最近7天内被访问过的所有文件

find . -type -atime -7

搜索恰好在7天前被访问过的所有文件

find . -type -atime 7

搜索超过七天内被访问过的所有文件

find . -type -atime +7

搜索访问时间超过10分钟的所有文件

find . -type f -amin +10

根据文件大小匹配

find . -type f -size 文件大小单元

b:块(512字节)

c:字节

w:字(2字节)

k:千字节

M:兆字节

G:G字节

搜索大于10KB的文件

find . -type f -size +10k

搜索小于10KB的文件

find . -type f -size -10k

搜索等于10KB文件

find . -type f -szie 10k

删除匹配文件

find . -type f -name "*.txt" -delete

根据文件权限进行匹配

搜索当前目录下权限为777的文件

find . -type f -perm 777

找出当前目录下权限不是700的txt文件

find . -type f -name "*.txt" ! -perm 700

找出当前目录用户zhang拥有的所有文件

find . -type f -user zhang

找出当前目录用户组gzhang拥有的所有文件

find . -type f -group gzhang

查找长度为0的文件

find . -type f -empty

相关内容