Linux中find命令详述

Find:实时查找工具,通过搜索指定起始路径下文件系统各个层级完成查找。

1. 语法:find path option 处理动作
 1). 选项/option
  按名字查找:
   -name “pattern”
   eg:find /root -name hello.txt
    -iname “pattern”:与name相同
   eg:find . ( -name "*.txt" -o -name "*.pdf" ) -print

  按文件大小查找:
   -size [+/-]num
   eg:find /mnt -size +10M*

  按文件类型查找:
    -type TYPE
    类型:f:普通文件
      d:目录文件
       l:符号链接文件
      b:块设备文件
      c:字符设备文件
      p:管道文件
      s:套接字文件

   按深度查找:
   -depth:在查找文件时,先查找当前目录的文件,再在其子目录中查找
   -mindepth num:最少多少层
   eg:find / -mindepth 5 -name passwd
   -maxdepth num:最多多少层
   eg:find /tmp -mindepth 4 -maxdepth 4

  按时间查找:
   -atime TIME:在多长时间内被访问过的文件
   -amin
   -mtime TIME:在多长时间内内容修改过的
   -ctime TIME:在多长时间内变化过的(元数据或权限变化)文件

  根据权限查找:
   -perm [/|-]mode
   eg:find -type f -perm 644 -print

   其他查找方式:
    -user username:查找属主指定用户的所有文件;
   eg:find . -type f -user weber -print
    -group grpname:查找属组指定组的所有文件;
    -uid UID:查找属主指定UID的所有文件;
    -gid GID:查找属组指定GID的所有文件;
    -nouser:查找没有属主的文件;
    -nogroup:查找没有属组的文件;
    -iregex :忽略大小写
    -regex:区分大小写*(find . -regex ".(.txt|.pdf)$")

 2). 处理动作:
  输出至标准输出;默认的动作
   -print
  eg1:find / -name file -print
  eg2:find . -type f -user weber -print

  强大的exec
   显示文件的大小
   eg:find . -name file1 -exec du -h {} \;
   eg:find / -type f -user root -exec chown weber {} ;

   找到文件全都copy到另一个目录
   eg.find . -type f -mtime +10 -name "*.txt" -exec cp {} ODL ;

  删除
   eg1:find . -size +10M -ok rm -rf {} \;
   eg2:find . -type f -name "*.swp" -delete

  处理动作参数
    -ls : 类似于对查找的文件执行“ls -l”命令
   -delete:删除查找到的文件
    -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中

注意项
   1.支持Glob通配符(只匹配路径名)
   [ ],*,?, [^],
   2.{}是一个特殊的字符串,对于每一个被匹配的文件,{}会被替换成相应的文件名。
   3.tips:如果后续要执行多个命令,则写成一个脚本,然后exec调用时执行脚本即可。
   4.-print的定界符:默认使用“作为文件的定界符;-print0使用”作为文件的定界符,这样就可以搜索包含空格的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值