• Linux命令详解-find命令(一)


    终于下决心写这个命令的详解,挑站下自己的毅力,争取尽量写多点。

    find命令,跟英文意思一致,用于在磁盘内查找文件、目录等。

    --help可以获得命令格式等简单帮助信息。

     语法:

    find 路径  -选项  [ -print ] [ -exec commdnd ] {}  \;

    如果路径是空字符串,则使用当前路径。

    如果后面的表达式为空,那么则使用默认的表达式。

     如图所示,路经后没有表达式,效果相当于查找任意,包括目录。

    -print选项和-print0选项,选项为True,将在标准输出打印搜索结果完整的文件名(包含路径)。

    一般来说输出的文件名最后有结束符、换行符。如果你不想输出它们,那么你就需要使用-print0选项。

    -type选项,定义本次搜索文件的类型,f代表普通文件,d代表目录,l代表软连接文件,p代表管道名,b代表块文件,s代表sock文件,c代表字符设备文件

    例1:查找名为bcd的目录

    find ./ -type d -name bcd

     如图,搜索到两个名为bcd的目录

    -name选项和-iname选项,查找指定名的文件,-iname选项不区分大小写

     例2:查找以b开头的普通文件(区分大小写)

    find ./ -type f -name "b*"

    例3:查找以b开头的普通文件(不区分大小写

    find ./ -type f -iname "b*"

     

    如图,-iname搜索结果包含b和B开头的文件,-name仅包含b开头的文件。

    这里有个细节,例子中使用了通配符“*”,此时必须使用引号括起来代表文件名,否则搜索结果未空。本图第一行运行结果为空。

    如果没有“-type f”,那么除了普通文件,目录等其他类型文件也会被搜索到。

    例4:查找以b开头的文件(不区分大小写

    find ./ -iname "b*"

     -perm选项,按文件权限来查找文件

    例5:查找权限为777的普通文件

     find ./ -type f -perm 0777 -print

    如图,b3.txt文件权限是777,其他文件不是。搜索结果只有b3.txt 

    例6:下面3个命令用法分别针对查找设置了SUID、SGID、粘着位(sticky)文件

    find ./ -type f -perm 4755 或 find ./ -type f -perm /u=s

    find ./ -type f -perm 2755 或  find ./ -type f -perm /g=s

    find ./ -type f -perm 1755 或 find ./ -type f -perm /o=t

    对创建者设置了强制位,执行这个文件时,将会以文件所有者身份执行该文件。

    粘贴位只对目录有效,它可以让普通用户对该目录下文件可写,但是只有文件主和root用户可以删除。

    -empty选项,查找空文件(文件长度为零)

    例7:查找bcd目录下的空文件

    find ./bcd -empty 

     如图,bcd下有两个文件,其中B1.txt为空。该命令只搜索了bcd目录,没有搜索其他目录,afg目录下的空文件b3.txt没有出现在搜索结果内。

    "!"符号,搜索选项取反。这个符号放在选项之前,条件将会是相反的。

    例7:查找不为空的文件,权限不是777的普通文件

    find -type f ! -empty ! -perm 777

     如图,b1.txt和b4.txt都不是空文件,b4.txt权限是777。所以搜索结果是b1.txt

    -delete选项,找到文件并删除。

    例8:找到b3.txt并删除

    find -type f -name b3.txt -print -delete

     

    如图,afg目录下有文件b3.txt,执行命令后b3.txt已经不存在了。

     -user选项,按文件属主查找

    例9:查找属主是root的文件

    find ./ -user root

    如图,属主是root的文件和目录各有1个。搜索结果正确。

    -group选项,按文件所属组查找

    例10:查找属组是root的文件

    find ./ -group root

     如图,属组的文件有2个,目录有1个。搜索结果正确。

    -nouser选项,查找无有效属主文件

    -nogroup选项,查找无有效属组文件

    例11:查找无有效属主文件,查找无有效属组文件

    find ./ -nouser

    find ./ -nogroup

     如图,c4.txt文件是属组无效文件,c1.txt文件是无有效属主和无有效属组文件。

    这两个选项,在系统中删除用户后,用来查找垃圾文件。

    ----------待续...----------

  • 相关阅读:
    使用 Python 和CE进行游戏修改
    小学生写作业用什么灯最好?分享学生专用的暖光LED灯
    Java多线程 - 交替打印问题
    FPGA的斐波那契数列Fibonacci设计verilog,代码和视频
    机器学习(五)如何理解机器学习三要素
    Numpy和Pandas简介
    (附源码)springboot养老院系统 毕业设计 645488
    列出docker常用的命令
    链路追踪--Sleuth和日志聚合---Zipkin
    矢量图形编辑软件Boxy SVG mac中文版软件特点
  • 原文地址:https://blog.csdn.net/bigwood99/article/details/125507140