文件查找-find命令
- 格式:
find [路径] [选项] [操作]
- 选项
-name
根据文件名查找-iname
根据文件名查找,忽略大小写-perm
根据文件权限查找find /etc -perm 777
-prune
该选项可以排除某些查找目录,格式为-path 排除文件 -prune -o
-path 文件 -prune -o 其中-o是或的意思find . -path ./etc -prune -o -type f
查找当前目录下文件类型,排除./etc文件 的文件find . -path ./test -prune -o -path ./test_1 -prune -o -type f
-user
根据用户属主查找-group
根据用户属组查找-mtime -n | +n
根据文件更改时间查找, -n表示n天内修改的时间 +n表示n天外修改的时间 n表示n天修改的时间-mmin -n | +n
-n表示n分钟修改的时间 +n表示n分钟外修改的时间 n表示n分钟修改的时间-nogroup
查找无有效属组的文件-nouser
查找无有效属主的文件-newer file1
查找更改时间比file1新的文件find . -newer test
查找当前路径下,比test文件新的文件
-type
按照文件类型-size +n -n
按照文件大小查找,-n大小小于n的文件 +n大小大于n的文件 n大小等于n的文件find /etc -size +1M
查找/etc目录下,文件大于1M的文件find /etc -size -1M
查找/etc目录下,文件小于1M的文件
-mindepth n
从n级子目录开始搜索-maxdepth n
最多搜索到n级子目录
- 操作
-print
打印输出-exec
对搜索的文件执行特定的操作,格式为:-exec 'command' {} \;
find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
搜索etc目录下,以.conf结尾的,且大于10k的文件,然后将其删除find /var/log -name '*.log' -mtime +7 -exec rm -f {} \;
搜索/var/log目录下,以.log结尾的,更改时间在7天外的文件,然后将其删除find /etc/ -size +10k -type f -name '*.conf' -exec cp {} /root/conf \;
搜索/etc目录 以.conf结尾的 大于10k的文件,然后拷贝到/root/conf路径下
-ok
和exec操作一样,每次操作都会给用户提示
逻辑运算符
-a
逻辑与-o
逻辑或-not 或 !
逻辑非find . -not -user hfds | find . ! -user hfds
查找当前路径下,属主不是hfds的文件find . -type f -a \{ -user hfds -o -name '*.xml' \}
查找当前目录下 属主为hfds或以.xml结尾的普通文件find . -type f -a -user hfds -a -size +300c
查找当前路径下 属主hfds 大于300字节的普通文件
locate
- 文件查找命令,所属软件包mlocate
- 不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
- find是默认全部匹配的,locate则是默认部分匹配
updatedb命令
- 用户更新/var/lib/mlocate/mlocate.db
- 所使用配置文件/etc/updatedb.conf
- 该命令在后台cron计划任务定期执行
whereis命令
-b
只返回二进制文件-m
只返回帮助文件文件-s
只返回源代码文件
which命令
- 作用:仅查找二进制程序文件