find命令詳解
目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設計、保亭黎族網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
大家或多或少使用過windows的文件查找,針對整個文件系統(tǒng)、部分分區(qū),以文件名、時間等條件來進行文件查找。在Linux中主要通過locate和find這兩個命令,來完成對文件查找。
首先,簡單講一下locate和find這兩個命令的適應場景和各自特點。locate和find在Linux中都可以實現(xiàn)基于文件系統(tǒng)查找符合條件的文件,卻有各自的特點和使用場景。locate命令在文件系統(tǒng)上實現(xiàn)文件查找,是基于事先構建好的搜索數(shù)據(jù)庫來完成的。locate命令通過搜索數(shù)據(jù)庫,而不是每次查找都遍歷指定的文件系統(tǒng),因此,可以快速的檢索查找統(tǒng)計出符合條件的文件。
locate命令搜索查找的是數(shù)據(jù)庫,數(shù)據(jù)庫中有的文件,可以快速的查找,數(shù)據(jù)庫中還未更新的,則無法查找到,因此通過locate命令查找文件,是非實時的查找,最近創(chuàng)建的文件還未在數(shù)據(jù)庫中建立相關的索引等信息,無法查找到。
locate有兩種更新搜索數(shù)據(jù)庫的方法:
1、系統(tǒng)制定的計劃任務,搜索遍歷整個根文件系統(tǒng),來自動完成數(shù)據(jù)庫的更新
2、updatedb命令,手動更新數(shù)據(jù)庫
因此,locate命令適用于非實時的、模糊的、快速查找
locate命令基本用法:
locate [option]...[pattern]...
常用選項:
-h 幫助信息
-i 忽略大小寫
-c 統(tǒng)計共有多少符合條件的文件
-b 只顯示匹配路徑中的基名
-r 支持使用正則表達式來匹配pattern
一般,在Linux中l(wèi)ocate命令查找文件,使用較少,多使用find命令,實現(xiàn)實時精確的文件查找。
find命令詳解
find查找命令,是通過遍歷指定的文件系統(tǒng),匹配查找模式來完成查找,是實時的、精確查找。
find命令的基本用法:
find [option]...[查找文件路徑] [查找條件] [查找后的處理動作]
常用選項:一般使用較少
查找文件路徑:查找文件的起始路徑,默認是當前工作目錄
查找條件:指定的查找標準,可以是文件名、文件的大小、文件的類型、權限、從屬關系、時間戳等標準來查找,默認為查找指定路徑下的所有文件。
處理動作:對符合條件的文件作出操作,默認為標準輸出。
備注:find查找文件,默認是glob文件名通配,而非正則表達元字符通配
查找條件:
-name "pattern" 根據(jù)文件名來查找文件
-iname "pattern" 根據(jù)文件名查找文件,忽略大小寫
實例:
#find /etc -name pass* #在/etc目錄下查找文件名以pass開頭的文件
#find / -name pass* #在根目錄下查找文件名以pass開頭的文件
-regex "pattern" 根據(jù)正則表達式匹配查找
在find中使用較少,正則表達式工作在貪婪模式下,匹配的是整個路徑而非基名
-user username 查找屬主為指定用戶的文件
-group groupname 查找屬組為指定組的文件
-uid UID 查找屬主為指定UID的文件
-gid GID 查找屬組為指定GID的文件
-nouser 查找沒有屬主的文件
-nogroup 查找沒有屬組的文件
組合測試:
與:-a 默認組合邏輯
或:-o
非:-not或!
備注:組合測試時如用括號需轉(zhuǎn)義 \( \)
-type TYPE 根據(jù)文件類型查找
f普通文件 d目錄 l鏈接文件 b塊設備 c字符設備文件 p管道 s套接字
-size [+|-]#單位 根據(jù)文件大小來查找
常用單位:k M G
備注:-size 3M:查找出來的文件是滿足小于4M大于2M的范圍的文件
-size +3M:查找的是4M及大于4M的文件
-size -3M:查找的是2M及小于2M的文件
根據(jù)時間戳查找
以天為單位
-atime [+|-]#
-mtime [+|-]#
-ctime [+|-]#
以分為單位
-amin [+|-]#
-mmin [+|-]#
-cmin [+|-]#
實例:#find /etc -mtime -7 #查找7天內(nèi)修改過的文件
根據(jù)權限查找
-perm [/|-]mode
備注:-perm mode:精確匹配權限位
-perm /mode:任意一類用戶(u,g,o)的任何權限位,任何一個符合條件即滿足(9個權限位只要有一個滿足即可,是或的邏輯關系)
-perm -mode:每一類用戶(u,g,o)的權限位(r,w,x)的每一位,同時符合條件即滿足(9個權限位之間是與的邏輯關系)
實例:#find /etc -not -perm /222 -type f #查找所有用戶都沒有寫權限的文件
處理動作:
-print 輸出至標準輸出,默認動作
-ls 類似于對查找到的文件執(zhí)行"ls -l"命令,輸出文件的詳細信息
-delete 刪除查找到的文件
-fls /path/to/file 把查找到的所有文件的長格式信息保存至指定的文件中
-ok command {} \; 對查找到的每個文件都交給command來執(zhí)行,每個文件執(zhí)行都要用戶確認
-exec command {} \; 對查找到的每個文件都交給command來執(zhí)行,不需要用戶確認
備注:find查找到的文件路徑傳給后面的command,是先查找出所有符合條件的文件路徑,并一次性傳遞給后面的命令,但是有些command不能接受過長的參數(shù),此時command執(zhí)行會失敗。另有一種方式可以規(guī)避此問題:#find ... | xargs command
當前標題:find文件命令查找詳解
標題鏈接:http://chinadenli.net/article30/jgjspo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、企業(yè)建站、用戶體驗、、網(wǎng)站策劃、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)