Linux常用命令 — find

173 阅读3分钟

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 {} \;