linux系统find命令的一些使用技巧

 

参数:
1.-name选项:按照文件名称查找,允许使用通配符
2.-type选项:按照文件类型查找
3.-user选项:按照文件所有者查找
4.-size选项:按照文件大小查找
5.-maxdepth<目录层级〉:设置最大目录层级
6.-mindepth<目录层级〉:设置最小目录层级
 
示例
1.find /etc -name "net*.conf"   查找etc目录下所有文件名是以"net"开头,".conf"结尾的文件
2.find /boot -type d         查找boot目录下所有的目录
3.find /boot -size +1024k     查找boot目录下所有大于1024k的文件
4.find /home -user horse     查找home目录下所有归属者是horse的文件
 
基于目录深度搜索
find /home -maxdepth 3 -type f   查找向下最大深度限制为3层的普通文件
find /home -mindepth 2 -type f   搜索出深度距离当前目录至少2层目录的普通文件
 
查找时,忽略一个或多个目录下文件
注意:-path 的前缀要和find的目录一样
#忽略单个目录
#-a逻辑与,当-path "./var"为真,则执行-prune,返回真;-o逻辑或,增加查询条件,与前面排除目录条件组合输出符合的内容
理解方法:find . {{{-path "./var"} -a {-prune}} -o {-name ".log"}} -print
find . -path "./var" -a -prune -o -name ".log" -print
#忽略多个目录
find .  \( -path "./var" -o -path "./opt" \)  -a -prune -o -name ".log" -print
或者
#忽略单个目录,其中./var*表示./var下所有文件
find . ! -path "./var*"  -name ".log"
#忽略多个目录
find . ! -path "./var*"  ! -path "./opt*" -name "*.log"
 
查找一个或多个目录下文件
#在当前目录下的dir1目录及dir1子目录下查找文件
find ./ -path "./dir1*" -name 1.txt
#在当前目录下的dir1、dir2目录及dir1、dir2子目录下查找文件
find ./ \( -path "./dir1*" -o -path "./dir2*" \) -name a
 
查找范围时间内的文件
参数
-mmin N   修改时间:文件内容最后一次修改时间,单位分钟
-amin N    访问时间:用户最近的一次访问时间,单位分钟
-cmin N    变化时间:文件权限、所有权最后一次改变时间,单位分钟
 
-mtime N 修改时间:文件内容最后一次修改时间,单位天
-atime N   访问时间:用户最近的一次访问时间,单位天
-ctime N   变化时间:文件权限、所有权最后一次改变时间,单位天
 
 
-newermt  指定日期
-newer        指定参考文件
posted @ 2022-05-16 14:52  gpysir  阅读(619)  评论(0编辑  收藏  举报