日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux中find命令详解

發(fā)布時間:2024/1/17 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中find命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

find:

? ?find是一個實(shí)時查找工具,通過遍歷指定起始路徑下文件系統(tǒng)層級結(jié)構(gòu)完成文件查找;


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

一、find的工作特性:

????????1、精確查找

????????2、實(shí)時查找

????????3、查找速度略慢?


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

二、find命令的用法:

????????find [OPTIONS] ?[查找起始路徑] ?[查找條件] ?[處理動作]

? ??

查找起始路徑:指定具體搜索目標(biāo)起始路徑;默認(rèn)為當(dāng)前目錄;

查找條件:指定的查找標(biāo)準(zhǔn),可以根據(jù)文件名、大小、類型、從屬關(guān)系、權(quán)限等等標(biāo)準(zhǔn)進(jìn)行查找;默認(rèn)為找出指定路徑下的所有文件;

處理動作:對符合查找條件的文件做出的操作,例如刪除等操作;默認(rèn)為輸出至標(biāo)準(zhǔn)輸出;

??

[查找條件]:

????????表達(dá)式:選項和測試

????????測試:結(jié)果通常為布爾型("true", "false")


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

????????1、根據(jù)文件名查找

????????-name ?"pattern":精確匹配文件名

????????-iname "pattern":匹配文件名時不區(qū)分字符大小寫

????????pattern模式支持glob風(fēng)格的通配符:

????????????????*:匹配任意長度的任意字符

?????????????????:匹配任意單個字符

????????????????[]:匹配指定范圍內(nèi)的任意單個字符

????????????????[^]:匹配指定范圍外的任意單個字符

示例

1、查找/etc目錄下文件名為passwd的文件


2、查找/etc目錄下文件名為包含passwd的文件,不區(qū)分大小寫


3、查找/etc目錄下文件名為passwd后面跟了單個字符的文件


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

????2、根據(jù)文件從屬關(guān)系(屬主、屬組)查找

????????-user USERNAME:查找屬主為指定用戶的所有文件;

????????-group GRPNAME:查找屬組為指定組的所有文件;

????????-uid UID:查找屬主為指定的UID的所有文件;

????????-gid GID:查找屬組為指定的GID的所有文件;

????????-nouser:查找沒有屬主的文件;

????????-nogroup:查找沒有屬組的文件;

示例:

1、查找/tmp目錄下屬主為hadoop的所有文件

小提示:使用find命令可在最后加上-ls可以以長格式列出文件的屬性


2、查找/tmp下屬組的GID為4015的文件


3、查找/var/tmp目錄下沒有屬主的文件


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

????3、根據(jù)文件的類型查找

????????-type TYPE

????????????f: 普通文件

????????????d: 目錄文件

????????????l:符號鏈接文件

????????????b:塊設(shè)備 文件

????????????c:字符設(shè)備文件

????????????p:管道文件

????????????s:套接字文件

示例

1、查找/dev目錄下文件類型為塊設(shè)備的所有文件


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

? ?4、根據(jù)文件的大小查找

????????-size [+|-]#UNIT ? ? (#號表示數(shù)字 ? ?UNIT:單位,默認(rèn)為字節(jié),不帶+-號表示精確查找)

????????常用單位:k, M, G

? ? ? 注意:單位換算后的結(jié)果通常是非精確的數(shù)值,例如(#-1,#]這個單位范圍內(nèi)的文件都會被換算為#

????????????#UNIT:匹配到的是(#-1,#]這個范圍內(nèi)大小的文件? ? ?

????????????-#UNIT:[0,#-1] 匹配到的是[0,#-1]這個范圍內(nèi)大小的文件,因?yàn)槲募拇笮〔豢赡苄∮?

????????????+#UNIT:(#,+∞) ?匹配到的是(#,+∞)這個范圍內(nèi)大小的文件

示例

1、查找/etc目錄下大于500k的文件或目錄


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??

?????5、根據(jù)文件的時間戳查找:??

????????以“天”為單位??

????????注意:和查找文件類似,天數(shù)的換算通常也為非精確值,例如(#-1, #]范圍內(nèi)的時間都會換算為#?????????

? ? ? ?#:[#, #+1)?匹配到的是距現(xiàn)在執(zhí)行查找命令這一刻經(jīng)過了[#, #+1)單位時間內(nèi)的時間

? ? ? -#:[0, #) ?匹配過去了[0, #)單位時間內(nèi)的時間

? ? ? +#:[#+1,+∞) 匹配距現(xiàn)在過去了[#+1,+∞)單位時間之內(nèi)的時間

? ? ?例如,查找過去3天內(nèi)訪問過的文件,匹配到的是過去[72,96)小時之內(nèi)訪問過的文件

????????????-atime ?[+|-]# ? atime表示最近一次訪問時間

????????????-mtime ?[+|-]# ? mtime表示最近一次修改時間

????????????-ctime ?[+|-]# ? ctime表示最近一次改變時間

????????以“分鐘”為單位

????????????-amin ?[+|-]#

????????????-mmin ?[+|-]#

????????????-cmin ?[+|-]#

示例

1、找出在/tmp目錄下過去5分鐘之內(nèi)訪問過的文件或目錄

小提示:可使用stat命令檢查文件時間是否符合查找條件


2、找出/var/tmp目錄下最近1天內(nèi)修改過了的文件或目錄


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

????6、根據(jù)文件的權(quán)限查找:?

??????? ?

????????-perm ?[/|-]mode? ?(mode代表權(quán)限) ? ??

???????????? mode (不加/或-)表示精確權(quán)限查找

????????????/mode:任何一類用戶(u,g,o)的權(quán)限中的任何一位(r,w,x)符合條件即滿足;mode中的9位權(quán)限之間存在“或”關(guān)系;

????????????-mode:每一類用戶(u,g,o)的權(quán)限中的每一位(r,w,x)同時符合條件即滿足;mode中的9位權(quán)限之間存在“與”關(guān)系;

示例

1、查找當(dāng)前目錄下權(quán)限為440的文件


2、查找當(dāng)前目錄下至少有一類用戶有讀寫權(quán)限的文件

????提示:/666表示三類用戶中只要滿足讀寫權(quán)限中的一種就視為符合條件

3、查找當(dāng)前目錄下所有用戶都有寫權(quán)限的文件

???提示:-222表示三類用戶中的每一類用戶都必須對文件有寫權(quán)限才符合條件

?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??7、組合測試條件進(jìn)行查找?

????組合測試:測試邏輯

? ? ??與:-a, 默認(rèn)組合邏輯;必須滿足所有條件才予以顯示

? ? ??或:-o,只要符合條件之一就顯示

? ? ??非:-not, ! 不符合條件的才予以顯示

????????????

? ? ??!A -a !B = !(A -o B) ?非A且非B 等于 非(A或B)

? ? ??!A -o !B = !(A -a B) ?非A或非B 等于 非(A且B)

示例
1、找出/var/tmp目錄下文件名中不包含fstab字符串的文件或目錄;

???

2、找出/var/tmp目錄下屬主為非root,而且文件名不包含passwd字符串的文件;

????


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[處理動作]:? ?

????????-print:輸出至標(biāo)準(zhǔn)輸出;默認(rèn)的動作;

????????-ls:類似于對查找到的文件執(zhí)行“l(fā)s -l”命令,輸出文件的詳細(xì)信息;

????????-delete:刪除查找到的文件;

????????-fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;

????????-ok COMMAND {} \; ? :對查找到的每個文件執(zhí)行由COMMAND表示的命令;每次操作都由用戶進(jìn)行確認(rèn);

????????-exec COMMAND {} \; ?:對查找到的每個文件執(zhí)行由COMMAND表示的命令;-exec 不用用戶每次確認(rèn),直接執(zhí)行操作 {}是用來引用找到的文件名


示例

1、找出/var/tmp目錄中屬主為root的文件或目錄,并將其詳細(xì)信息保存至/tmp/root.txt中


2、查找/tmp目錄中既沒有屬主也沒有屬組的文件或目錄,并將其屬主和屬組都改為root


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

練習(xí)


1、查找/var目錄下屬主為root,且屬組為mail的所有文件或目錄;


2、查找/usr目錄下不屬于root, bin或hadoop的所有文件或目錄;用兩種方法;


3、查找/tmp目錄下最近一周內(nèi)其內(nèi)容修改過,且屬主不是root用戶也不是hadoop用戶的文件或目錄,用兩種方法:


4、查找/var目錄下沒有屬或?qū)俳M,且最近一周內(nèi)曾被訪問過的文件或目錄;


5、查找/etc目錄下大于1M且類型為普通文件的所有文件;


6、查找/tmp目錄下所有用戶都沒有寫權(quán)限的文件;


7、查找/var/tmp目錄至少有一類用戶沒有執(zhí)行權(quán)限的文件;


8、查找/etc目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶有寫權(quán)限的所有文件;





轉(zhuǎn)載于:https://blog.51cto.com/coffeeyep/1725425

總結(jié)

以上是生活随笔為你收集整理的Linux中find命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。