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

shell编程学习之find

[复制链接]

尚未签到

发表于 2018-8-25 12:44:50 | 显示全部楼层 |阅读模式
  find   查找命令
  1 打印当前列表
  [root@linux-3 ~]# find . -print
  .
  ./install.log.bak
  ./.bash_logout
  ./.bash_history
  ./install.log.syslog.bak
  ./.tcshrc
  ./.rnd
  2 查找/root下面以bak后缀,并打印出来
  [root@linux-3 ~]# find /root/ -name '*.bak' -print
  /root/install.log.bak
  /root/install.log.syslog.bak
  /root/install.log.bak.bak
  /root/sendEmail-v1.56.tar.gz.bak.bak
  /root/sendEmail-v1.56.tar.gz.bak
  /root/install.log.syslog.bak.bak
  3 查找/root下面以bak和txt后缀,并打印出来
  [root@linux-3 ~]# find /root/ \( -name '*.bak' -o -name '*.txt' \) -print
  /root/install.log.bak
  /root/2.txt
  /root/1.txt
  /root/install.log.syslog.bak
  /root/install.log.bak.bak
  /root/sendEmail-v1.56.tar.gz.bak.bak
  /root/3.txt
  /root/4.txt
  /root/sendEmail-v1.56.tar.gz.bak
  /root/install.log.syslog.bak.bak
  4 查找/root除了txt后缀,并打印出来
  [root@linux-3 ~]# find /root ! -name '*.txt' -print
  /root
  /root/install.log.bak
  /root/.bash_logout
  /root/.bash_history
  /root/install.log.syslog.bak
  /root/.tcshrc
  /root/.rnd
  /root/.cshrc
  /root/install.log.bak.bak
  /root/.bashrc
  5 查找/root下面所有的目录
  [root@linux-3 ~]# find /root/ -type d -print
  /root/
  /root/test1
  /root/test
  6  查找/root下面普通文件
  [root@linux-3 ~]# find /root/ -type f -print
  /root/install.log.bak
  /root/.bash_logout
  /root/2.txt
  /root/1.txt
  /root/.bash_history
  /root/install.log.syslog.bak
  /root/.tcshrc
  /root/.rnd
  /root/.cshrc
  /root/install.log.bak.bak
  /root/.bashrc
  /root/install.log
  7 查找/root下面链接文件
  [root@linux-3 ~]# find /root/ -type l -print
  /root/test-test
  8 查找/root最近两天被访问的文件
  [root@linux-3 ~]# find /root/ -atime -2 -print
  /root/
  /root/test-test
  /root/2.txt
  /root/1.txt
  /root/.bash_history
  /root/test1
  /root/.bashrc
  /root/3.txt
  /root/.bash_profile
  /root/4.txt
  9 查找/root最近两天被修改的文件
  [root@linux-3 ~]# find /root/ -mtime -2 -print
  /root/
  /root/test-test
  /root/2.txt
  /root/1.txt
  /root/.bash_history
  /root/test1
  /root/3.txt
  /root/4.txt
  /root/test
  10 查找/root最后两天改变的时间的文件
  [root@linux-3 ~]# find /root/ -ctime +2 -print
  /root/install.log.bak
  /root/.bash_logout
  /root/install.log.syslog.bak
  /root/.tcshrc
  /root/.rnd
  /root/.cshrc
  /root/install.log.bak.bak
  /root/.bashrc
  /root/install.log
  11 查找/root下权限为777的文件
  [root@linux-3 ~]# find /root/ -perm 777 -print
  /root/test-test
  /root/2.txt
  /root/1.txt
  12  查找/root下用户是test的文件
  [root@linux-3 ~]# chown test:test test.sh
  [root@linux-3 ~]# ll|grep test.sh
  -rw-r--r-- 1 test test   218 12-23 03:38 test.sh
  [root@linux-3 ~]# find /root/ -user test -print
  /root/test.sh
  13  查找/root文件名为2.txt并删除其文件
  [root@linux-3 ~]# find /root/ -name '2.txt'                 #已查找到
  /root/2.txt
  [root@linux-3 ~]# find /root/ -name '2.txt' -delete位      #删除
  [root@linux-3 ~]# find /root/ -name '2.txt'                  #再次查找已没有
  [root@linux-3 ~]#
  14  查找/root下一天前的以bak后缀的文件,并复制到/root/find-test文件夹
  [root@linux-3 ~]# find /root/ -mtime +2 -name '*.bak'   #查找是否有bak后缀的文件
  /root/install.log.bak
  /root/install.log.syslog.bak
  /root/install.log.bak.bak
  /root/sendEmail-v1.56.tar.gz.bak.bak
  /root/sendEmail-v1.56.tar.gz.bak
  /root/install.log.syslog.bak.bak
  [root@linux-3 ~]# find /root/ -mtime +2 -name '*.bak' -exec cp {} /root/find-test/  \; #查找复制
  [root@linux-3 ~]# cd find-test/      #进文件夹查看
  [root@linux-3 find-test]# ls
  install.log.bak      install.log.syslog.bak      sendEmail-v1.56.tar.gz.bak
  install.log.bak.bak  install.log.syslog.bak.bak  sendEmail-v1.56.tar.gz.bak.bak
  #此命令可以用来做备份非常有用,只要更换命令就很强大
  15  多匹配查找/root下面以txt后缀的文件
  [root@linux-3 ~]# find /root/ -name '[a-z].txt' -print
  /root/b.txt
  /root/a.txt
  [root@linux-3 ~]# find /root/ -name '[a-z][0-9].txt' -print
  /root/b2.txt
  /root/a1.txt
  16 查找/root下大于3K的文件夹
  [root@linux-3 ~]# find /root/  -size +3k -print
  /root/
  /root/test
  17 查找/root下面但排除/root/test文件夹里面并以txt后缀的文件
  [root@linux-3 ~]# find /root/ -path '/root/test/' -prune -o -name '*.txt' -print
  /root/ABCD.txt
  /root/b.txt
  /root/2.txt
  /root/b2.txt
  /root/a.txt
  /root/test/1.txt
  /root/abc.txt
  /root/a1.txt
  18 查找/root下面但排除多个文件夹里面并以txxt后缀的文件
  [root@linux-3 ~]# find /root/ \( -path '/root/test' -o -path '/root/test1/' \) -prune -o -name '*.txt' -print
  /root/ABCD.txt
  /root/b.txt
  /root/2.txt
  /root/test1/9.txt
  /root/b2.txt
  /root/a.txt
  /root/abc.txt
  /root/a1.txt
  19  查找/root下面普通文件并排序
  [root@linux-3 ~]# find /root/ -type f|sort
  /root/2.txt
  /root/a1.txt
  /root/ABCD.txt
  /root/abc.txt
  /root/a.txt
  /root/b2.txt
  /root/b.txt
  /root/test1/9.txt
  /root/test/1.txt
  20  查看硬件设备
  [root@linux-3 ~]# find /dev/cdrom -print
  /dev/cdrom
  21 以上只是find基础,要想find发挥的更好,需要xargs的配合使用,请看shell编程学习之xargs


运维网声明 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.iyunv.com/thread-556395-1-1.html 上篇帖子: shell-特殊变量 下篇帖子: shell脚本5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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