2022
我们一起努力

Linux系统find命令学习笔记(linux系统find命令用法)

对成为一个Linux系统管理员并不感冒,但是谁让我是严重的兴趣导向型 外加 广度优先学习型。


从接触Linux的第一天起,我就需要find命令,比如找找到底那些该死的.c,.h文件都在哪儿,或是某个配置文件.etc之类的都在哪儿。相比windows的搜索,find命令实在是有点儿麻烦的恐怖,想完成个具体的任务,噼里啪啦的要敲一大堆,而且man find 实在太恶心了,怎么都看不懂。干脆摸着石头过河吧。慢慢来,习惯就好。


举例1:


比如要找某个目录下的所有的*.file文件,但是想跳过其中的test1子目录,test2子目录,test3……


ok


& sudo find . \( -path “./test1” -o -path “./test2” -o path “./test3” ……. -o path “./testX “\) -prune


-o -type f -name “*.file” -print


你看看有多长


好,一点一点儿解释。


首先,sudo 跳过。然后,find 跳过。


再然后, 一个”.” 这东西可以省略,表示当前目录


接着,“\(” 这个和后面的“\)”是成对出现的,这里的”()”表示这对圆括号里面的东西shell不解释,交给find命令解释。恩,字面上就是这么说的,具体的,我也不知道,尤其是什么叫作“shell不解释,交给find解释”,不管他,照着写就行了。


这里要注意一下,“\(”和“\)”前后都要有空格,不然出错,不可以这样“\(-path” ,一定要有空格。


接着-path “路径”


这里每一个-path对应一个你想忽略的子目录 ,还有,-path后面要有空格,不能紧跟目录


单引号,双引号无所谓,一个是强quote,一个是弱quote,区别肯定是有的,不过到现在还没搞明白。


每一个 -path “路径” 后跟一个 -o 表示-or 一串路径中间 用这个 -o连接


然后是-prune选项,意思是“砍掉”


接着又一个 -o 待会儿解释


后面的就比较普通了 选择文件类型 以”*.file”为文件名 注意,这里的双引号可以省略(唉,别管这个双引号了,老晕在这儿)


好吧,关键是-o


其实 还省略了一堆 -a “-and”


意思是:


如果


. \( -path “./test1” -o -path “./test2” -o path “./test3” ……. -o path “./testX “\) 成立


则执行 prune


否则 执行


-type f -name “*.file” -print


其中


. \( -path “./test1” -o -path “./test2” -o path “./test3” ……. -o path “./testX “\)


表示,当前目录 下 满足./test1 或者./test2 或者….. 的目录 -知道为什么是-o了吧


注意”./test”中的”./”不能省,一定要指明。


非要解释的话


可以这样想,虽然有些牵强


find 后先是跟一堆目录,然后就是动作,比如-prune 就是砍掉,-print 就是打印到控制台


-o表示 选择 可以理解成if else 语句。 不加-o 就是-a 表示并且,也就是一起执行


if (一堆目录)


动作 1 …


else


动作2…

本文从互联网转载,来源地址:www.downzz.com/shell/17226.html,原作者保留一切权利,若侵权或引用不当,请联系茶猫云(cmy.cn)删除。【茶猫云,优质云服务器提供商】

赞(0)
文章名称:《Linux系统find命令学习笔记(linux系统find命令用法)》
文章链接:https://www.fzvps.com/34150.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!