Linux 常用命令之 Find——查找文件

语法

find [路径] [选项] [操作]

路径: 可以是相对路径,也可以是绝对路径; "." 表示当前目录,"/" 表示根目录

选项与含义

-name : 文件名-perm : 文件权限-user : 文件属主-group : 文件属组-nouser : 无属主文件,即属主不存在于 /etc/passwd 中-nogroup : 无属组文件,即属组不存在于 /etc/groups 中-mtime -n +n : 文件更改时间,-n :距今n天之内;+n:距今n天之前-size n:[c] : 文件长度为 n块,带c参数时,表示长度以字节计算-depth : 先在当前目录中查找,再去子目录查找-type : 文件类型

文件类型包含

b : 块设备d : 目录c : 字符设备文件p : 管道文件l : 符号链接文件f : 普通文件

操作

-print : 结果输出到标准输出-exce : 执行shell命令;命令格式为: command {} \ ; 注意"{}" 与""之间有空格,同时""后面的分号也不能少-ok : 以更安全的交互形式执行shell命令,即执行shell命令前都要确认

示例:根据文件名或权限查找文件

Find命令根据名称、权限查找示例

说明:

目录为当前目录,用"."表示;

-name 'read_*' 表示按名称查找满足 'read_*' 通配符模式的文件;

-perm 740 表示权限查找中,属主有7,属组有4,其它用户有0权限的文件;

-print 表示输出结果到标准输出

示例:根据修改时间查找文件

Find命令根据修改时间查找示例结果

第一条命令为:距今3天之前的文件;第二条命令为:距今3天之内的文件;可使用 ll 或者 ls -l 查看文件时间;文件具体时间查看命令: stat filename

示例:查找到文件后执行相关的shell命令

Find命令查找到结果后执行Shell命令

说明: -exec 在添加Shell命令的时候,不支持别名命令,如果使用别名,则会把别名当成文件或目录;参考上图中第二条命令的结果,返回的是一个错误提示