find命令常用解析

Linux中的find 命令是专门用于搜索文件的,其用法为:

find [path…] [expression]

  • -name:对应名称文件,匹配内容写在引号”“里面
    -perm:对应权限文件,数字表示(如755)
    -user:对应拥有者文件
    -nouser:无用户文件,在/etc/passwd中没有的用户
    -group:对应所属组文件
    -nogroup:无所属组文件,在/etc/group中没有的组
    -mtime -# | +# | #:对应最后修改时间(天)
    (atime:最后访问时间;ctime:最后权限更改时间)
    -type:文件类型(f | d | l | b | c | p)
    -size #:对应大小文件(c为字节、b为block、k为kb、M为Mb、G为Gb,默认为b,1b=512字节)例:-size 10k
    -exec:对匹配的文件执行相应命令,{}表示匹配的文件,注意{}和 \;之间要加空格
    COMMAND {} \;
    -prune:忽略指定目录中的查找,联合-path使用
    -follow:如果遇到符号链接文件,就跟踪至链接所指向的文件。

  • -a:and 并
    -o:or 或
    !:取反
    +:超过
    -:低于

例1:查询以host开头的文件:
[root@super ~]# find /etc -name “host*” -print
例2:查询除了用户zff以外的所有用户文件(一定要加-o -print):
[root@super ~]# find /home -path “/home/zff” -prune -o -print

xargs:将前面的执行结果当做后面命令的参数(管道符 | 是把前面命令的标准输出作为后一个命令的标准输入)
(与-exec只有用法上的区别,执行效果相同)
例3:删除/var/log目录下7天以上没改变的文件:
[root@super ~]# find /var/log -mtime +7 | xargs rm
例4:查找ls命令安装包的详细信息:
[root@super ~]# which ls | xargs rpm -qi

find命令仅是针对文件名的查找,不能查看文件内容。
例5:查询/etc目录下含有”root”关键字的文件内容:
[root@super ~]# find /etc -type f -exec grep “root” {} \;
或使用find配合xargs命令(会列出文件路径):
[root@super ~]# find /etc -type f | xargs grep “root”

其他补充:
1、 在命令最后加-print打印查询结果,最好养成习惯加上
2、 linux中的命令是从上往下、从左往右执行的。(命令优先级)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值