Linux/Unix下非常有用的find命令的用法
功能簡述:find(查找)主要沿著檔案層次(目錄)結構依次向下遍歷,匹配符合條件的檔案,可以附帶執行相應的操作選項,默認的操作結果是列印出符合條件的檔案與目錄(也可通過使用-print來指定,強調命令的結果是列印出來,不加此選項也可以),
主要功能如下(所有測驗均在當前目錄(test)下開始匹配,搜索):
?:基本用法:列出給定目錄(base_path)下所有的檔案和子目錄:find base_path -print

補充:
①:根據檔案名和正則運算式進行搜索,使用選項 -name或-iname(忽略大小寫):
find base_path -name ‘xxx’ -print
find base_path -iname ’xxx‘ -print

查找遍歷出當前目錄下的所有.txt檔案
②:否定引數,可以用 !排除所指定到的模式,

此處將列印出除txt文本檔案外的的所有檔案,
③基于目錄深度的搜索,find命令指定遍歷完所有的子目錄,使用-maxdepth和-mindefth可以限制find命令遍歷的目錄深度,并且find命令默認不搜索符號鏈接,可以用-L選項改變這種行為,

此處遍歷列印出距離當前目錄深度為一及以內的的檔案,

-mindepth的引數代表了開始進行匹配的目錄到base_path的最短距離,與maxdepth相似,
④:基于檔案型別搜索:使用-type可以指定搜索的檔案型別,linux/unix將所有的的一切都視為檔案(檔案型別有:普通檔案f,目錄d,符號鏈接 l,字符設備c,塊設備b,套接字s,FIFO-p),使用 -type選項我們能夠對檔案型別進行過濾,

此處就會只匹配出特定項下的所有普通檔案,和目錄,
⑤:根據檔案的時間戳進行搜索:Linux/Unix檔案系統中的每一個檔案都有三種時間戳,訪問時間(-atime),修改時間(-mtime),變化時間(-ctime),單位為天數,用整數指定,數字前加上+,表示大于這個時間;加上-,表示小于這個天數;不加表示剛好這個天數,

此處的檔案是我在進行截圖之前才創建的,訪問,修改,變化時間均小于一天,
當然相應的用分鐘作為單位就可以用選項(-amin)(-mmin)(-cmin),如下我們測驗修改時間

⑥:基于檔案大小的搜索:find提供了指定檔案大小的單位選項進而搜索符合大小檔案的功能,這個搜索也常常會讓用戶感到非常舒服(b:塊, c:位元組, w:字, k:千位元組, M:兆位元組, G:吉位元組),
在搜索之前我們先用ls(list)指令來查看下當前目錄下的檔案資訊:

資訊的第五列就是各檔案目錄的大小(位元組),我們通過指定匹配條件來搜索:

經過測驗,在開始目錄下,檔案型別為普通目錄,檔案大小大于30個位元組的檔案就是zl.txt了
需要指出的是:選項出現的先后次序我們也應該考慮到內,因為它會影響到整條命令的執行效率,
提示:本文需要掌握關于ls(list), chown(changeowner)等命令,以及關于Linux/Unix檔案系統檔案型別和檔案權限等知識,
未完:見Linux下的find命令2
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/160991.html
標籤:Linux
上一篇:vim
