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 分钟 -mtime N 小时 -newermt 指定日期文件 find /home -type f -mmin -1 //查找/home下在一分钟内修改的文件 find /home -type f -mmin +1 //查找/home下在一分钟前修改的文件 find /home -type f -newermt 2022-5-06 //查找5月6号的文件 查询条件还有'-10 minutes' '-24 hours' '1 day ago ' 'yesterday'