find命令 (liunx中的内容一切皆文件)
格式:find [OPTION]... [查找路径] [查找条件] [处理动作]
- 查找路径:默认为当前目录
-
查找条件:默认为查找所有文件
-
处理动作:默认是输出到屏幕
查找条件:
-
根据文件名字查找:
-
-name:后跟文件名称,根据文件名字查找。支持使用linux的通配符
-
-iname:同上,忽略大小写
-
根据属主,属组查找:
-
-user:后跟用户名,根据用户名查找文件
-
-group:后跟组名,根据组名查找文件
-
-uid:根据uid查找
-
-gid:根据gid查找
-
-nouser:不跟参数,查找属主为空的
-
-nogroup:查找属组为空的
-
-
根据文件类型查找:
-
-type 文件类型:根据文件类型查找
-
f:普通文件
-
d:目录文件
-
l:符号链接文件
-
s:套接字文件
-
b:块设备文件
-
c:字符设备文件
-
p :管道文件
-
-
-
处理动作:
-
-print:默认的处理动作,输出到屏幕
-
-ls:查看文件权限详情,相当于对查询出的文件右执行了"ls -l"命令
-
-delete:删除查找到的文件
-
-fls:后跟路径,将查询到的长文件信息输出到文件。即执行了-ls之后又把输出流重定向到了文件
-
-exec 对查找出来的内容进行相应处理
-
组合查找:
-
-a:与
-
-o:或
-
-not或!:非
-
例,find / −nouser−o−nogroup−nouser−o−nogroup -ls,查找属组为空或属主为空的文件
-
根据文件大小查找:
-
格式:-size [ + | - ] 大小
-
大小=数字+单位
-
单位有k,M,G
-
-
数字+单位:查找的范围是:(数字-1,数字],find /etc -size 3k,查找大于2k小于等于3k的文件
-
-:使用减号表示:[0,数字-1]。例,find /etc -size -3k,查找所有小于等于2k的文件
-
+:加号表示(数字,oo)。例,find /etc -size -3k,查找所有大于3k的文件
-
-
-
根据时间戳查找:
-
以天为单位:a表示访问时间,m修改时间,c改变时间
-atime、-mtime、-ctime:也能配置+,-号使用,使用方法与根据文件大小查找类似-
例,find /etc -mtime +3,查找修改时间大于4天的文件
-
例,find /etc -mtime 3,查找修改时间大于3天小于4天的文件。
-
例,find /etc -mtime -3,查找修改时间在3天以内的文件。
-
-
以分钟为单位:
-
-amin、-mmin、-cmin:同上
-
-
-
根据文件权限查找:
-
格式:-perm [ / | - ] 权限,以例子说明,centos7中+彻底过时,被 / 取代。
-
find /etc -perm 111:精确查找,查找权限为600的文件
-
find /etc -perm /111:查找任何一组满足权限条件的文件,类似或的关系。010也满足条件。
-
find /etc -perm -111:必须三组同时满足条件,类似与的关系。113满足条件。
-
-
小测试:
-
find /etc -name passwd find /etc -maxdepth 1 -name passwd find /etc -maxdepth 1 -name passwd find /etc -maxdepth 2 -mindepth 2 -name passwd find /mnt -user westos find /mnt -not -user westos find /mnt -user westos -o -user lee find /mnt -type d find /mnt -perm 111 文件权限位111 find /mnt -perm -111 文件权限 u位有1 g位有1 o位有1 find /mnt -perm /111 文件权限u位或g位或o位 有1 find /mnt -perm /111 -type f -exec chmod ugo-x {} \; 其中{} 表示find命令查找结果 \ 为了转译
(1)查找/etc目录中对其他人有写权限的文件,并把这些文件的other位写权限去掉
find /etc -type f -perm -002 -exec chmod o-w {} \;
(2)在系统中查找属于westos用户的文件,并吧这些文件打包成/root/westos.tar.gz的压缩包。
find / -user westos -exec tar zcvf /root/westos.tar.gz {} \;
-