博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
find命令详解
阅读量:6713 次
发布时间:2019-06-25

本文共 3741 字,大约阅读时间需要 12 分钟。

命令选项

组合条件
处理动作
实例
1,按名称查找
2,按类型查找
3,按用户名,组名,uid,gid查找
4,按权限查找
5,按大小查找
6,按时间查找


find 查找命令

命令格式

find 查找路径 [选项] 查找内容

find [OPTION]... [查找路径] [查找条件] [处理动作]

命令选项

-name   --按名字查找     -i  忽略字母大小写支持使用glob(通配符)   *, ?, [], [^]

-teyp --按文件类型查找

b:块设备文档
d:目录
c:字符设备文档
P:管道文档
l:符号链接文档
f:普通文档

-size --通过文件大小查找

+n 查找出大于n的文件
-n 查找出小于n的文件

-uid 按uid查找

-gid 按gid查找
-user 按用户名查找
-nouser 查找没有属主的文件
-group 按属组名查找
-nogroup 查找没有属组的文件

-perm   通过权限查找

组合条件

与:-a
或:-o
非:-not, !
例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)

找出/tmp目录下,属主不是root,且文件名不是fstab的文件;

find /tmp ( -not -user root -a -not -name 'fstab' ) -ls
find /tmp -not ( -user root -o -name 'fstab' ) -ls


处理动作

-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令; —— {}: 用于引用查找到的文件名称自身;
-print:默认的处理动作,显示至屏幕;
-ls:类似于对查找到的文件执行“ls -l”命令;
-delete:删除查找到的文件;
-fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中;
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令;
对于每个文件执行命令之前,都会交互式要求用户确认;

注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令;

有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:
find 查找路径 [选项] 查找内容 | xargs COMMAND


实例

1,按名称查找

find /etc/ -name grub.conf  --查找/etc目录下的grub.conf文件find /etc/ -name "*.conf"   --使用通配符,查找/etc/目录下的以.conf结尾的文件,这里一定加上引号,否则会出现问题find /etc/ -name ".*"   --查找etc下所有隐藏文件find /test/  -iname Aaa --忽略大小写加上-i通配符(不是正则表达式):?       --匹配单个任意字符*       --0个或多个任意字符[a-z]   --匹配单个字母[0-9]   --匹配单个数字

--定义查找的目录层次

find /test/ -maxdepth 1 -name aaa

/test/aaa# find /test/ -maxdepth 2 -name  aaa/test/aaa/test/a/aaa

2,按类型查找

find /etc  -type l |grep grub.conffind /etc  -type l -name grub.conf  --与-name参数一起写find /  -type f         --普通文件find /  -type b         --块文件find /  -type s         --socket文件find /  -type c         --字符文件find /  -type p         --管道文件find /  -type d         --目录find /  -type l         --链接文件

3,按用户名,组名,uid,gid查找

find / -user a    find / -group a    find / -uid 533    find / -gid 533    find / -nouser      --查出系统的无头文件,就是指没有属主的文件      find / -nogroup     --查出系统的没有属组的文件没有属主和属组的文件,系统管理一般是要去注意的

4,按权限查找

find / -perm  777   --查出所有权限为777的文件,一般也是管理员要注意的

练习:

ll

total 0-rwxr-xrwx. 1 root root 0 Jul 23 11:42 1---------x. 1 root root 0 Jul 23 11:42 10-rwx--xr--. 1 root root 0 Jul 23 11:42 2-rw-rw--wx. 1 root root 0 Jul 23 11:42 3-r-xrwx---. 1 root root 0 Jul 23 11:42 4-r---w--w-. 1 root root 0 Jul 23 11:42 5--wx-wx-wx. 1 root root 0 Jul 23 11:42 6--w-r-x--x. 1 root root 0 Jul 23 11:42 7---xrw-r-x. 1 root root 0 Jul 23 11:42 8----rwxr--. 1 root root 0 Jul 23 11:42 9# find . -perm +422 --只有7和10两个文件不符合。+号的意思表示把权限写成9位,然后位与位对比,只要有一位重合,则找出来# find . -perm -422 --只查出3和5两个文件。-号的意思表示位与位对比,要全部包含重合,则找出来例:假设/etc/目录下所有文件owner和group为root.root,我要查找一个普通用户user1在/etc/下能读能写的文件.find /etc/ -perm   -006

5,按大小查找

find / -size +500M  --单位有k,m,g等find / -size +1Gfind /etc -size +50kfind /etc -size +50b    (b在这里不是代表byte,是代表block,并且还不是系统的4096大小的block,这里的大小为512byte)find /  -size -1Mfind /  -size +3c   (c在这里代表byte)vimnfind /   -size +80M -size -100M

6,按时间查找

# stat 1 |tail -3    Access: 2014-07-23 11:56:42.297572398 +0800 --atime 阅读过,用cat,tail,head,more,less命令等或者vi访问过,但没有修改;执行过也会改变Modify: 2014-07-23 11:56:44.836572907 +0800 --mtime 修改过内容,用vi修改过或者echo一个值重定向Change: 2014-07-23 11:56:44.856885177 +0800 --ctime 改变过内容,属主,属组,权限,创建软链接,硬链接等-mtime  n   --代表n天前的24小时内       +n  --代表n天前(不包含n天本身的24小时)    -n  --代表n天内    1   2   3   4   5   6   7            |-- 2 --|    <-------    -2  |   | +2    --------------->find / -mtime 0     --0代表目前当天的24小时find / -mtime  +1   --修改时间48小时之前find . -mtime -1    --修改时间往推24小时到现在甚至到将来find / -mtime  1    --往前推24小时到推48小时之内    -mmin    -amin   --与mtime,atime,ctime的单位不同,这是以分钟为单位    -cmin   # find / -mmin +30 -mmin -150   --查看30分钟前到150分钟前之内的两个小时内有哪些文件被修改过内容现在的时间为2014年7月23号14:35分,我现在想查出7月20号那一天哪些文件被修改过内容怎么做?find / -mtime  3  --这样做代表的是7月19号14:35分到7月20号14:35分

转载于:https://blog.51cto.com/13744837/2115470

你可能感兴趣的文章
ELK部署参考文档
查看>>
Dcloud中mui 微信支付和支付宝支付接口完美实现付款代码(PHP支付宝demo)
查看>>
逻辑思考之,指定轮次提交赛事结果验证是否合法
查看>>
Atomic
查看>>
对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
查看>>
关于sql语句的优化问题
查看>>
SQL Server 2016新特性:数据库级别配置
查看>>
[Boost系列] Boost学习
查看>>
中美贸易战升级 医疗器械行业影响大
查看>>
exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp
查看>>
嵌入的iframe框架自适应宽度代码
查看>>
IPTABLES常用命令之配置生产环境IPTABLES及优化
查看>>
linux服务ssh详解
查看>>
cat命令一些不常用但很有用的参数
查看>>
双色球 脱壳加去效验
查看>>
php安装使用memcached
查看>>
#22 系统进程调度、at、batch、mail、crontab
查看>>
Intellij IDEA Debug调试技巧
查看>>
OPENSSL问题,使用fsockopen()函数提示错误
查看>>
lvs详细介绍
查看>>