Linux find 命令总结
2016-09-25 12:38
183 查看
查找文件是非常常见的系统操作,Linux可以使用find命令来进行文件查找,用好find命令,会让你感受到前所未有的痛快。find有众多选项和参数,熟练运用它们,你才能真正感受到find命令的强大,总结如下。
pathname 表示文件查找的基目录,若不写,默认为当前目录./
-name区分大小写,-iname不区分大小写
2、按文件类型:-type
^
3、按文件所有者、所属组
^
4、按文件权限:-perm
改选项后面接参数:[+|-|/] mode,mode表示权限,可以用数字表示,如644,用二进制可以表示为110 100 100;也可以写成u=rw,g=r,o=r。对于mode,-mode,+mode,/mode,区别如下:
^
还可以将文件特殊权限SUID,SGID,SBIT也考虑进去,SUID : 4 ,SGID:2,SBIT:1,如
5、按文件时间
^
^
5、按文件大小:-size
-size后接参数:[+|-]n[bcwkMG],+表示大于,-表示小于,bcwkMG为单位,含义见下:
-o 或
-not,! 非
结合管道命令 | ,xargs命令,可以实现更多的操作
find的更多用法后面再做补充……
命令格式:
find pathname -option [-print] [-exec -ok command {} \;]pathname 表示文件查找的基目录,若不写,默认为当前目录./
find支持按以下方面进行查找:
1、按文件名: -name ,-iname-name区分大小写,-iname不区分大小写
find -name test #查找文件名为test的文件 find -iname "*test*" #查找文件名含有test(不区分大小写)的文件 find -name "*.py" #查找以.py结尾的文件
2、按文件类型:-type
支持类型 | 说明 | 示例 |
---|---|---|
f | 普通文件 | find /tmp -type f |
d | 目录 | find /tmp -type d |
b | 块设备 | find /tmp -type b |
c | 字符设备 | find /tmp -type c |
l | 符合链接文件 | find /tmp -type l |
p | 命令管道文件 | find /tmp -type p |
s | 套接字文件 | find /tmp -type s |
3、按文件所有者、所属组
选项 | 参数 | 说明 | 示例 |
---|---|---|---|
-user | USERNAME | 根据属主查找 | find -user mysql |
-group | GROUP | 根据属组查找 | find -group root |
-uid | UID | 根据UID查找 | find -uid 999 |
-gid | GID | 根据GID查找 | find -gid 888 |
-nouser | 查找没有属主的文件 | find -nouser | |
-nogroup | 查找没有属组的文件 | find -nogroup |
4、按文件权限:-perm
改选项后面接参数:[+|-|/] mode,mode表示权限,可以用数字表示,如644,用二进制可以表示为110 100 100;也可以写成u=rw,g=r,o=r。对于mode,-mode,+mode,/mode,区别如下:
参数 | 说明 | 示例 |
---|---|---|
mode | 严格匹配二进制的每一位 | find -perm 600 #权限为600 |
-mode | 匹配所有为1的位 | find -perm -600 #所有者权限为rw |
+mode | 至少匹配任意一个为1的位 | find -perm +600 #所有者有读或写权限 |
/mode | 至少匹配任意一个为1的位 | find -perm /600 #所有者有读或写权限 |
还可以将文件特殊权限SUID,SGID,SBIT也考虑进去,SUID : 4 ,SGID:2,SBIT:1,如
find -perm 4700 #查找rws------的文件 find -perm u=rws #同4700 find -perm -0700 #查找所有者权限为rwx的文件 find -perm -u=rws #同-4700 find -perm /0700 #查找所有者有r或w或x的文件 find -perm /u=rws #同+4700
5、按文件时间
选项 | 参数 | 说明 |
---|---|---|
-atime | [+|-]n | access time,最近一次访问时间 |
-ctime | [+|-]n | change time,最近一次属性修改时间 |
-mtime | [+|-]n | modify time,最近一次内容修改时间 |
-amin | [+|-]n | access min,最近一次访问时间 |
-cmin | [+|-]n | change min,最近一次属性修改时间 |
-mmin | [+|-]n | modify min,最近一次内容修改时间 |
参数 | 说明 | |
---|---|---|
time | n | 发生在距离当前时间n*24小时至(n+1)*24 小时,[n*24,(n+1)*24) |
-n | 发生在n天以前,距离当前时间为(n+1)*24小时或者更早,[(n+1)*24,∞) | |
+n | 发生在n天以内,距离当前时间为n*24小时以内,[0,n*24) | |
min | n | 发生在距离当前时间n分钟至(n+1)分钟,[n,n+1) |
-n | 发生在n分钟以前,距离当前时间为(n+1)分钟或者更早,[n+1,∞) | |
+n | 发生在n天以内,距离当前时间为n分钟以内,[0,n) |
5、按文件大小:-size
-size后接参数:[+|-]n[bcwkMG],+表示大于,-表示小于,bcwkMG为单位,含义见下:
find -size -2M -size +2k #查找的文件2k到2M的文件 find -size 80c #查找大小为80个字节的文件
组合查找
-a 与-o 或
-not,! 非
find -name "*.zip" -a -size +100M #也可以不写-a find -name "*.zip" -o -size +100M find -name "*.zip" ! -size +100M
find 结果后续处理
find -name "*test*" -type f -ls #ls列出详细信息 find -name "*test*" -type f -exec rm {} \; #-exe 4000 c后接其他处理命令,{}表示find查询的一个结果,\;为固定写法 find -name "*test*" -type f -ok rm {} \; #作用与-exec相同,区别在于-ok后面执行的命令需要用户确认,而-exec不需用户确认
结合管道命令 | ,xargs命令,可以实现更多的操作
find -name "*.zip" -ls | head find / -name "mytest" | xargs -i mv {} "MyTest" #xargs的-i选项表示用{}替代管道前的结果 find / -name "mytest" | xargs -I {} mv {} "MyTest" #xargs的-I选项指明用{}替代管道前的结果
find的更多用法后面再做补充……
相关文章推荐
- linux之Find命令总结
- Linux系统基础-管理之find命令学习总结
- linux分享之locate、find命令使用总结
- Linux下关于find命令的总结
- linux中 find命令的总结
- linux下查找文件命令总结find、locate、whereis、which、type
- linux下find(文件查找)命令的用法总结
- 最近用到的Linux命令总结 find route netstat ping watch killall iostat free top ps
- 项目总结--实现Linux下的find命令
- linux下的文件查找命令总结:find、locate、whereis、which
- linux中Find、whereis、locate、which查找文件命令总结
- Linux下4个查找命令which、whereis、locate、find的总结
- Linux中find、xargs命令使用及方法总结
- linux下find(文件查找)命令的用法总结
- 总结linux下find命令
- linux中Find、whereis、locate、which查找文件命令总结
- 总结linux下find命令
- linux下find(文件查找)命令的用法总结
- LINUX find、ln 常用命令总结
- linux中 find命令的总结