十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
本篇內(nèi)容主要講解“Linux/Unix的find命令的主要功能”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux/Unix的find命令的主要功能”吧!
本篇內(nèi)容主要講解“Linux/Unix的find命令的主要功能”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux/Unix的find命令的主要功能”吧!
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了鳳慶免費(fèi)建站歡迎大家使用!
主要功能如下(所有測(cè)試均在當(dāng)前目錄(test)下開(kāi)始匹配,搜索):
基本用法
列出給定目錄(base_path)下所有的文件和子目錄:find base_path -print
補(bǔ)充:根據(jù)文件名和正則表達(dá)式進(jìn)行搜索,使用選項(xiàng) -name或-iname(忽略大小寫(xiě)):find base_path -name ‘xxx’ -printfind base_path -iname ’xxx‘ -print
否定參數(shù),可以用 !排除所指定到的模式
此處將打印出除txt文本文件外的的所有文件。
基于目錄深度的搜索
find命令指定遍歷完所有的子目錄。使用-maxdepth和-mindefth可以限制find命令遍歷的目錄深度,并且find命令默認(rèn)不搜索符號(hào)鏈接,可以用-L選項(xiàng)改變這種行為。
例如-maxdepth的參數(shù)為1時(shí),只匹配當(dāng)前目錄下。
-mindepth的參數(shù)代表了開(kāi)始進(jìn)行匹配的目錄到base_path的最短距離。
基于文件類(lèi)型搜索
使用-type可以指定搜索的文件類(lèi)型,linux/unix將所有的的一切都視為文件(文件類(lèi)型有:普通文件f,目錄d,符號(hào)鏈接 l,字符設(shè)備c,塊設(shè)備b,套接字s,F(xiàn)IFO-p),使用 -type選項(xiàng)我們能夠?qū)ξ募?lèi)型進(jìn)行過(guò)濾。
此處就會(huì)只匹配出特定項(xiàng)下的所有普通文件,和目錄。
根據(jù)文件的時(shí)間戳進(jìn)行搜索
Linux/Unix文件系統(tǒng)中的每一個(gè)文件都有三種時(shí)間戳,訪(fǎng)問(wèn)時(shí)間(-atime),修改時(shí)間(-mtime),變化時(shí)間(-ctime),單位為天數(shù),用整數(shù)指定,數(shù)字前加上+,表示大于這個(gè)時(shí)間;加上-,表示小于這個(gè)天數(shù);不加表示剛好這個(gè)天數(shù)。
此處的文件是我在進(jìn)行截圖之前才創(chuàng)建的,訪(fǎng)問(wèn),修改,變化時(shí)間均小于一天。
當(dāng)然相應(yīng)的用分鐘作為單位就可以用選項(xiàng)(-amin)(-mmin)(-cmin),如下我們測(cè)試修改時(shí)間
基于文件大小的搜索
find提供了指定文件大小的單位選項(xiàng)進(jìn)而搜索符合大小文件的功能,這個(gè)搜索也常常會(huì)讓用戶(hù)感到非常舒服(b:塊, c:字節(jié), w:字, k:千字節(jié), M:兆字節(jié), G:吉字節(jié))。
在搜索之前我們先用ls(list)指令來(lái)查看下當(dāng)前目錄下的文件信息:
信息的第五列就是各文件目錄的大?。ㄗ止?jié)),我們通過(guò)指定匹配條件來(lái)搜索:
經(jīng)過(guò)測(cè)試,在開(kāi)始目錄下,文件類(lèi)型為普通目錄,文件大小大于30個(gè)字節(jié)的文件就是zl.txt了
基于文件權(quán)限和所有權(quán)的匹配
-perm選項(xiàng)指定了find指匹配指定權(quán)限的文件,參數(shù)為文件對(duì)應(yīng)的權(quán)限碼。
我們?nèi)匀豢蓞⒖饥拗械乃形募畔⒌牡谝涣校颂幮枰莆找欢P(guān)于文件權(quán)限的知識(shí)。如下我們查找權(quán)限為644的普通文件,即用戶(hù)可讀寫(xiě),組用戶(hù)可讀,其他可讀。
也可以用選項(xiàng)-user,匹配指定用戶(hù)所擁有的文件,參數(shù)為用戶(hù)名或者UID
利用find執(zhí)行相應(yīng)操作
比如刪除文件,使用-delete選項(xiàng);刪除測(cè)試目錄下所有的.txt普通文件
還可以利用-exec選項(xiàng)結(jié)合其他命令對(duì)文件進(jìn)行更高效的操作,更改文件的所屬權(quán),復(fù)制文件等,find命令使用一對(duì)花括號(hào){}代表文件名,對(duì)于每一個(gè)匹配到的文件,find命令會(huì)將{}替換成相應(yīng)的文件名; 如果-exec的命令有多個(gè)參數(shù)時(shí),需要注意結(jié)尾使用 " \; " 或者 "+",前者表示進(jìn)行轉(zhuǎn)義,不然系統(tǒng)會(huì)以為是find命令的結(jié)尾。
我們將測(cè)試目錄下的所有的.txt文件由用戶(hù)lihongbo轉(zhuǎn)換到用戶(hù)litao999,我們必須以root用戶(hù)進(jìn)行此操作,chown用于更改權(quán)限:
指定find跳過(guò)特定的目錄
使用-prune選項(xiàng)可以跳過(guò)我們?cè)谒褜さ牡囊恍┟黠@我們不需要的目錄
跳過(guò)了./test1目錄
需要指出的是:選項(xiàng)出現(xiàn)的先后次序我們也應(yīng)該考慮到內(nèi),因?yàn)樗鼤?huì)影響到整條命令的執(zhí)行效率。