find
功能:搜索目录或文件
语法:find [搜索范围][匹配条件]
区分大小写,-name
语法:find [搜索范围] [-name 文件或目录名]
举例:查找/etc目录下名字为inittab的文件或目录
find /etc -name inittab
不区分大小写,-iname
语法:find [搜索范围] [-iname 目录或文件名]
举例:查找/etc目录下名字为inittab或INITTAB的文件或目录
find /etc -iname inittab
模糊搜索,使用通配符*
查找/etc目录下名字包含(*关键字*)init的目录或文件
find /etc -name *init*
查找/etc目录下以init开头(关键字*)的目录或文件
find /etc -name init*
查找/etc目录下以init结尾(*关键字)的目录或文件
find /etc -name *init
按文件大小查找
语法:find [搜索范围] [-size +-n 数据块单位]
+ 大于
- 小于
n 等于(很少用)
解释:linux中文件数据保存在多个数据块中,数据块单位是字节,1个数据块是512字节,0.5KB,50兆换算成KB,50MB=51200KB=102400K
举例:查找根据录下大于50兆的文件
find / -size +102400
举例:查找/etc目录下,小于1兆的文件
find /etc -size -2048
按所属者查找
语法:find [查找范围] [-user 用户账号]
举例:查找/home目录下,属于www用户的目录或文件
find /home -user www
按所属组查找
语法:find [查找范围] [-group 用户账号]
举例:查找/home目录下,属于www用户组的目录或文件
find /home -group www
按多个条件检索-a 和-o
语法:find [查找范围][条件1 -ao 条件n]
示例-a,and:在/etc下查找文件大于1m并且小于50m的目录或文件
find /etc -size +2048 -a -size -102400
示例-o,or:在/etc下查找文件名为init开头或INIT开头的目录或文件
find /etc -name init* -o -name INIT*
按文件类型查找-type
语法:find [查找范围][-type fdl]
f 文件file
d 目录directory
l 软链接link
示例:查找/etc目录下所有的目录
find /etc -type d
示例:查找/etc目录下所有的文件
find /etc -type f
示例:查找/etc目录下,文件名以i开头的软链接文件
find /etc -type l -a -name i*
按i节点查询文件(目录或文件名特殊情况,比如带空格的),-inum
语法:find [查找范围][-inum i节点]
示例:
1、创建Program Files文件夹
mkdir "Program Files"
2、查询该文件i节点,i节点为799082
ls -lid "Program Files"
799082 drwxrwxr-x. 2 www www 4096 9月 3 19:44 Program Files
3、根据i节点查询该文件
find /home/www -inum 799082
管道,查询后执行某个操作
语法:find[选项][操作] -exec|-ok 命令 {} \;
-exec 执行操作
-ok 会询问你是否执行,输入y或n
示例:查找并对i节点为799082的文件进行删除
find /home/www -inum 799082 -exec rmdir {} \;