设为首页 收藏本站
查看: 952|回复: 0

[经验分享] Linux find命令记录

[复制链接]

尚未签到

发表于 2018-5-19 09:14:57 | 显示全部楼层 |阅读模式
  1、命令格式:
         
find pathname -options  [-print -exec ...]
2
、命令参数:
          pathname :
查找的目录路径。例如:./表示当前目录,/表示系统根目录。
          -print
:将匹配的文件输出到标准输出。
          -exec :对前边匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }\;之间的空格。
    3、命令选项(options:
            -name  :安装文件名查找文件
             -perm  :安装文件权限查找文件
            -prune :该选项使find命令不在当前指定的目录中查找,如果同时使用-depth 选项,则-prune选项被find命令忽略。
            - user  :按照文件属性查找文件
            -group :安装文件所属组查找文件
             -mtime -n +n :按照文件更改的时间查找文件,-n表示文件更改时间据现在n天以内,+n表示文件更改时间据现在n天以前,atime 类似
            -nogroup :查找无效所属组的文件即该文件属组在/etc/group中不存在。
            -nouser :查找无效属主的文件,即该文件属主在/etc/passwd中不存在。
            -newer file1 file2 :查找更改时间比文件file1新但比file2旧的文件。   
           -type :查找某一类型的文件,如下:
                     b  //块设备文件  (一块儿等于512字节)
                     d  //目录
                     c  //字符设备文件
                     p  //管道文件
                     l   //符号链接文件
                     f   //普通文件
                     -follow :如果find命令遇到符号链接文件,就跟踪至链接所指向的文件
  

  find常用实例:
  find ~ -name "*.log" -print   //查找家目录及其子目录中的文件
  find . -name "*.log" -print
  find . -name "[A-Z]*" -print
  find /etc -name "host*" -print
  find ~ -name "*" -print 或find . -print    //查找家目录下的文件
  find . -name "[a-z]*[4-9].log"-print   //想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件
  
  # find . -perm 755 -print   //当前目录下查找文件权限位为755的文件
  # find test -path "test/test3"-prune -o -print   //希望在test目录下查找文件,但不希望在test/test3目录下查找
  
  find . -size +1000000c -print     //在当前目录下查找文件长度大于1 M字节的文件
  # find . -size +1000c -print   //查找当前目录大于1k的文件
  find /home/apache -size 100c -print   //在/home/apache目录下查找文件长度恰好为100字节的文件
  find . -size +10 -print     //在当前目录下查找长度超过10块的文件(一块等于512字节)
  
  使用type选项:
  实例1:在/etc目录下查找所有的目录  
  命令:
  find /etc -type d -print  
  实例2:在当前目录下查找除目录以外的所有类型的文件  
  命令:
  find . ! -type d -print  
  实例3:在/etc目录下查找所有的符号链接文件
  命令:
  find /etc -type l -print
  
  
  # find -atime -2    //查找2天内修改过的文件
  # find . -name "*.log"     //在当前目录下查找.log结尾的文件
  
  # find . -type f -name"*.log"  //查找当前目录以.log结尾的普通文件
  # find . -type d | sort    //查找当前所有目录并排序
  
  #
  *************-exec 可是使用xargs来代替比较方便书写和操作。************************
  # find . -type f -exec ls -l {} \;     //查找当前目录下的普通文件后使用ls -l查看
  对前边处理的结果再处理
  可更改为:#find .=type -f|xargs ls -l   //利用管道把前边执行后的数据再处理。
  
  # find . -type f -mtime +14 -exec rm {}\;  //在当前目录中查找更改时间距现在14天以前的普通文件后删除
  可更改为:#find .-ytpe f -mtime +14 |xargs rm
  
  # find . -name "*.log" -mtime +5-ok rm {} \;  //在当前目录下查找更改时间距现在5天之前的文件并删除他们,在删除之前先给出确认提示。
  #
  [root@localhost ~]# find /etc -name"passwd" |xargs grep "root"
  /etc/passwd:root:x:0:0:root:/root:/bin/bash
  /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
  [root@localhost ~]#
  
  # find . -name "*.log" -exec mv{} .. \;    //查找文件移动到指定目录#这条命令是将查到的文件移动到上一级目录下。
  
  # find . -name "*.log" -exec cp{} test3 \;   //查找当前目录下以*.log结尾的文件cp到test3目录下。
  可更改为:#find .-name  "*.log" |xargs cp test3
  # find . -name "file" | xargs -I[] cp [] ..    //等同上一个
  #
  #
  注:总之:xargs和exec的执行效果一样的,xargs的执行效率比exec要高很多!
  # find . -type f -print | xargs file   //查找当前目录下普通文件后查下文件的属性。
  # find / -name "core" -print |xargs echo "" >/tmp/core.log //在根目录下查找内存信息后标准输出的内容转存到cort.log文件中。
  # find . -perm -7 -print | xargs chmodo-w   //查找当前目录下所有用户具有读、写和执行权限的文件,并收回写的权限。
  # find . -type f -print | xargs grep"hostname"   //查找当前目录下的普通文件中包括hostname这个词。
  # find . -name \* -type f -print | xargsgrep "hostnames"    //同上
  # find . -name "*.log" | xargs -imv {} test4   //查找当前目录下包括.log的文件后移动到test4目录下。
  
  # find . -name "*.log" | xargs -p -i mv {} ..   //-p 是在移动时提示确认是否执行后边的命令。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461891-1-1.html 上篇帖子: linux运维(七) 下篇帖子: Linux命令:less
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表