Linux find命令

find

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法
find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;
参数说明

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression

-inum inode : 根据inode号查找
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-type   查找某一类型的文件
        b - 块设备文件。
        d - 目录。
        c - 字符设备文件。
        p - 管道文件。
        l - 符号链接文件。
        f - 普通文件
comment

find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。

实例1

删除更改时间在七日之前的普通文件

$ find /var/logs -type f -mtime +7 -exec rm -rf  {} \;
实例2

删除乱码文件-exec

  1. 查找文件inode
$ ls -i
  1. 根据inode删除文件
$ find ./ -inum 83847 -exec rm -rf {} \;
或者
$ find ./ -inum 83847 | xargs rm -rf
或者
$ rm -rf `find ./ -inum 83847`
实例3

如果path目录下文件过多就会因为“参数列表过长”而报错无法执行。但改用xargs以后,问题即获解决。

find /path -type f -print0 | xargs -0 rm

本例中xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm。-print0表示输出以null分隔(-print使用换行);-0表示输入以null分隔。这样要比如下使用find命令效率高的多。

实例4

多个文件查抄内容

find /etc -name “passwd*” -exec grep “sam” {} \;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值