• find用法


    什么是find?

    假如现在有一个1.txt的文件,要找出来,根本找不到。find是找东西用的,不能找东西里面的内容,只能按照各类方式去查找。

     find (固定的查找)/tmp/(在哪里查找) -name(按什么样的条件) "1.txt" (找谁呢1.txt)

    -name 按照文件名字查找

    例如:

    touch {1..3}.txt   

    touch file{1..2}

    找出tmp下以1.txt结尾的文件

     

    找出tmp下以.txt结尾的文件

     

     ! 取反

    find /tmp ! -name "*.txt"    在tmp下找不是以.txt结尾的东西

    -i 忽略大小写

    例如

    touch FILE1          大写的FILE1

    find /tmp/ -iname “file1”

    -size 按照文件大小查找

    例如

    find /tmp -size +1M (+就是大于   如果不加+号,就是正常好好的  - 小于)

    find /etc -size +5M  查找在/etc/大于5M的文件

    find /etc -size 5M   查找正好是5M的文件 

    find /etc -size -5M  查找小于5M的文件

    空文件  find /tmp -size 0 

     按照修改时间查找

    find /etc -mtime +5    五天前

    写一个脚本查找最后创建时间是5天前,后缀是*.log的文件并删除。

    find / *.log -mtime +5 -exec rm -rf {} \;

    -type  按文件类型        f普通文件      d目录

    例如

    find /tmp -type f   找出在tmp下所有文件

    find /tmp -type d   找出在tmp下所有目录(包括隐藏目录)

    find /tmp -type f | wc -l  统计tmp下一共有多少个文件

    find /tmp/ -name "*.txt" | wc -l  统计tmp下以.txt结尾的文件

    【注意】东西找什么都可以,目录文件都能找出来,如果只要文件必须要用-type把类型规定死。

    -prem 按照文件权限

    find . -perm 644  查找当前目录下,权限为644   (.叫做当前目录)

    -o  或者

    这个参数可以链接2个条件,只要满足1个就会被找出来

    find /tmp/ -name "1.txt" -o -name "2.txt"  在tmp下找出以1.txt结尾或者是以2.txt结尾的东西

    find /tmp/ -name "1.txt" -o -size +1M     在tmp下找出以1.txt结尾或者大于1M的东西

    find /tmp/ -name "1.txt" -o -perm 644    在tmp下找出以1.txt结尾或者权限是644的东西

    -a 并且

    find /tmp/ -name “1.txt” -a -type f     在tmp下找名字是1.txt并且它是一个文件

      find /tmp -name "*.txt" -a -type d    在tmp下找出名字是以.txt结尾的,并且它是一个目录

    例如

    在tmp下建一个大小位3M的10.txt文件

    dd if=/dev/zero of=/tmp/10.txt bs=1M count=3

     在/tmp下,找出大于2M并且小于5M的东西并且是文件

    find /tmp/ -size +2M -a -size -5M -a type f     -a可以无限往后加

    动作

    touch {1..20}.txt

    find /tmp -name "*.txt" -exec rm -rf {} \;     把20个txt都删了  不要在根下找,找出来删了系统就没了

    -exec是固定的叫参数传递,这么查找不一定能找出多少个东西,找出的东西都执行它后面的动作

    rm -rf是动作     {}是固定的,后面加路径    \;是固定的,行尾符,结束的意思。

    请删除本机没有用的日志,日志路径是/var/log/。这个时候要考虑它的后缀名是什么。

    日志就是.log结尾的   删除本机所有的镜像文件.iso   删除本机所有的word文档 .doc

    例如

    找出在/tmp下以.txt结尾的并且是文件,把它强制拷贝到/srv,并显示过程

    中间加v显示过程      -rf强制

    find /tmp -name "*.txt" -a -type f -exec cp -rvf {} /srv \;

     例如

    找出/tmp下所有的目录然后删除

    find /tmp -type d -exec rm -rf {} \; 

    在/tmp下找出大于100k的,并且小于200k的文件,然后移动到/srv下

    find /tmp -size +100k -a -size -200k -type -f -exec mv {} /srv \;

    将/srv 3.txt 移动到/下

    find /srv -name "3.txt" -exec mv -vf {} / \;

    【注意】在执行后面的动作时,先把它找出来,再做后面的动作。不然容易出错。

  • 相关阅读:
    FastJson 配置
    Seata AT模式下的源码解析(三)
    【数据结构与算法】线性表的定义和基本操作
    2024年第一季度全球20起重大网络安全并购交易:生成式AI的兴起、网络攻击的增加和政府监管的强化推动并购活动增长
    【二叉树-困难】124. 二叉树中的最大路径和
    第一个vue-cli程序
    聚名十周年线上庆典正式开启,发送祝福即有好礼相赠~
    Vue3 onErrorCaptured errorHandler 异常处理
    内存模型 C++
    如何做好项目管理?年薪百万项目大佬一直在用这11张图
  • 原文地址:https://blog.csdn.net/weixin_53150440/article/details/127096379