文件查找-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命令
- 作用:仅查找二进制程序文件