Linux命令详解(7)-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文件是无有效属主和无有效属组文件。

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值