動作補充
原理; 在linux中,每天的12:00會將系統中的全部的檔名和檔案的路徑記錄到資料庫中
在查詢檔案的時候,會直接掃瞄資料庫,來找檔案的位置
缺點: 準確度不足
功能單一
優點: 查詢速度非常快
原理: 在linux中逐一比對檔案,檢查是否是要匹配的檔案
優點: 非常精確
功能強大
缺點: 慢
find命令的格式
find [路徑] [匹配模式] [動作]
路徑/ 表示整個檔案系統(整個計算機中查詢)
./ 表示在當前目錄下進行查詢(也會查詢當前位置下的子目錄中的檔案)
/path/to/dir 表示查詢指定目錄和目錄中的子目錄的中檔案
匹配模式
1)根據檔名查詢
-name 檔名 >>> 檔名嚴格區分大小寫
-iname 檔名 >>> 檔名忽略大小寫
例子:在檔案系統中找出檔案a.txt
# find / -name a.txt
例子:在/home和/home的子目錄中找出檔名中包含字母a的檔案
# find /home -name *a*
例子:在/home和/home的子目錄中找出檔名中以字母a結尾的檔案
# find /home -name *a
例子:在/home和/home的子目錄中找出檔名中以字母a開頭的檔案
# find /home -name a*
例子:在當前位置下找出檔案的第二個字母是a的檔案
# find ./ -name "?a*"
例子:在當前位置下找出檔案的第乙個字母是a,倒數第三個字母是b的檔案
# find ./ -name "a*b??"
注意
檔名可以是乙個具體的名稱,也可以是萬用字元
*:表示任意長度的任意字元
?:表示一位長度的任意字元
2)根據檔案屬主的名字或者uid進行查詢
-user 使用者名稱
-uid uid
【如果使用者被刪除,查詢使用者遺留下來的檔案,只能用uid進行查詢】
例子:在home下查詢屬主為laowantong的檔案
# find /home/ -user "laowantong"
例子::在home下查詢屬主id為780的檔案
# find /home/ -uid "780"
3)根據檔案屬組的名字或者gid進行查詢-group 屬組名
-gid gid
4)查詢沒有屬主的檔案-nouser
例子:在系統中找出沒有屬主的檔案
# find / -nouser
5)查詢沒有屬組的檔案-nogroup
例子:在檔案系統中找出沒有屬組的檔案
# find / -nogroup
6)根據檔案的型別進行查詢-type 檔案型別
檔案的型別
d 目錄
f 普通檔案
s 鏈結檔案
b 塊裝置問價【硬碟】
c 字元裝置檔案【鍵盤】
p 管道檔案
l 鏈結檔案
例子:在/home下找檔案型別為目錄的檔案
# find /home/ -type d
例子:在根下找檔案型別一般檔案的檔案
# find /home/ -type f
7)根據檔案的大小進行查詢-size 大小值
說明:如果省略單位,則預設單位是位元組
+表示大於指定值的檔案
-小於指定值得檔案
例子:在home下找出檔案大小為1k的檔案
# find /home -size 1k
說明:會將檔案大小是0.xk~1k的檔案都找出來
例子:在home下找出檔案大小為3k的檔案
# find /home -size 3k
說明:會將檔案大小是2k~3k的檔案都找出來
例子:在home下找出檔案大小為1m的檔案
# find /home -size 1m
說明:會將檔案大小是0.xm~1m的檔案都找出來
例子:在home下找出檔案大小為3m的檔案
# find /home -size 3m
說明:會將檔案大小是2.xm~3m的檔案都找出來
例子:在home下找出檔案大小為1g的檔案
# find /home -size 1g
說明:會將檔案大小是0.xg~1g的檔案都找出來
例子:在/home下找出檔案大小小於35k的檔案
# find /home/* -size "-35k
8)組合條件查詢-a: 且 and &&
-o: 或 or ||
-not: 非 !
例子:從home下,找出檔案的型別不是目錄的檔案
# find /home -not -type d
例子:從home下,找出檔案的型別不是目錄的檔案
# find /home -not -type d -a -not -type s
or# find /home -not \( -type d -o -type s \)【find 的() 需要轉義】
例子:從home下找出檔案型別是一般檔案,且檔名包含字母a,而且檔案大小大於1k
# find /home -type f -a -name "*a*" -a -size "+1k"
9)根據檔案的時間戳(天)進行查詢-mtime [+|-]n(單位:天) 最近一次的內容修改時間
-ctime [+|-]n(單位:天) 最近一次的屬性修改時間
-atime [+|-]n(單位:天) 最近一次的訪問時間
說明: 1. 無符號:指定乙個具體的那一天
2. + 號:指定時間之前的所有時間
3. - 號:指定之間到當前時間這段時間內
10)根據檔案的時間戳(分)進行查詢-cmin [+|-] n (單位:分)
-amin [+|-] n (單位:分)
-mmin [+|-] n (單位:分)
例子:在根下,找出5分鐘之內訪問過的檔案
# find / -atime -5
例子:在根下。找出5分鐘內沒有訪問過的檔案
# find / -atime +5
11)根據檔案的許可權進行查詢方式1:-perm 許可權(精確查詢)
方式2:-perm /許可權(模糊查詢) 9位許可權中,只要有一位匹配成功,就可以
方式3:-perm -許可權(模糊查詢) 檔案的許可權必須包含指定的9個許可權位
例子:在根下,找出許可權為700的檔案
# find / -perm 700
例子:在根下,找出檔案許可權屬主有任意許可權的檔案
# find / -perm /700
例子:在跟下,找出檔案許可權屬主有寫許可權、執行許可權至少乙個許可權檔案
# find / -perm /300
例子:在根下,找出檔案至少一類使用者有寫許可權的檔案
# find / -perm /222
例子:在根下,找出所有使用者都執行許可權的檔案
#find / -perm 111
12)使用正則進行匹配find -regex "pattern"【pattern匹配整個檔案路徑字串,而不僅僅是檔案的名稱】
動作
{} ——代表找到的檔案
\ —— 代表轉義
補充find之ctime、atime、mtime詳解
結合find清空檔案
for i in `find -name "*.log"`; do cat /dev/null >$i; done
或for i in `find /path/to/file -name "*.log"`; do echo "" >$i; done
find命令詳解
2009 07 30 17 20 34 閱讀255 字型大小 大 中小訂閱 find命令 一 原理 功能 在目錄結構中搜尋檔案,並執行指定的操作。此命令提供了相當多的查詢條件,功能很強大。語法 find 起始目錄 尋找條件 操作 1 查詢目錄 find home type d name quejin...
find命令詳解
linux下的find命令的查詢功能十分強大,下面詳細介紹find的大多數用法 工作方式 沿著檔案層次結構向下遍歷,匹配符合條件的檔案,並執行相應的操作。1.根據檔案時間搜尋 atime access time,訪問時間 即上次訪問這個檔案的時間 mtime modification time,修改...
find命令詳解
1 列出當前某個目錄的檔案和目錄 find 2 匹配所有以.txt結尾的檔名 find home root name txt print 3 多個條件 find name txt o name pdf print find regex py sh 4 否定引數 find name txt print...