Linux中喜歡把被操做的對象放在最後,參數等放中間git
例:find [參數] [路徑] [條件] [處理對象]正則表達式
首先,Linux中一切皆文件。「在目錄下查找符合條件的文件」,這是說的「文件」包括Windows中所謂的目錄即文件夾
ui
-P、-L、-Hspa
相對路徑和絕對路徑都可。3d
-name 'a*' 查找以 a 開頭的文件對象
-iname 'a*' 查找以 a或A 開頭的文件blog
-name '*.txt' 查找以 .txt 結尾的文件字符串
-type f 查找普通文件it
-type d 查找目錄文件搜索
-type l 查找連接文件
-type b 查找塊設備文件
-type c 查找字符設備文件
-type p 查找管道文件
-type s 查找套接字文件
-user king 查找用戶king擁有的文件
-group user1 查找組名爲user1擁有的文件
-uid 500 查找用戶ID爲500的用戶擁有的文件
-gid 0 查找組ID爲0的用戶擁有的文件
-nouser 查找沒有所屬者的文件
-nogroup 查找沒有所屬組的文件
-size 5k 查找小於等於5K的文件
-size -6k 查找小於6K的文件
-size +2g 查找大於2G的文件
-size +3m -a -size -6m 查找3M到6M之間的文件【-a:與】
-size +3k -o -size +4k 查找大於3K或6K之間的文件【-o:或】
atime:文件最後被讀取或訪問的時間
mtime:文件最後修改的時間
ctime:文件狀態改變的時間
【!!!不是以「天」爲單位,而是以「24小時」爲單位】
amin、mmin、cmin 【以「分鐘」爲單位】
例:
find -atime +1 當前時間的前24小時之前
find -atime 1 當前時間的前24小時之前到當前時間的前48小時之後
find -atime -1 當前時間的前24小時之後
find -atime 2 當前時間的前2*24(48)小時之前到當前時間的前2*24+24(72)小時之後
find -atime +2 當前時間的前48小時之前
find -atime -2 當前時間的前48小時之後
以此類推
find -perm 772 查找徹底匹配772的權限的文件
find -perm -444 查找三類用戶都擁有讀權限的文件
find -perm -774 查找前兩類用戶擁有徹底控制權而且其餘用戶擁有讀權限的文件
find -perm /327 只要第一類用戶擁有可讀和可執行兩個權限中的一個,或者第二類用戶可讀權限,或者第三類用戶擁有可寫、可讀、可執行三個權限中的任一個的文件都會被查到
-i:忽略字符的大小寫
-n:顯示行號
-color:對查詢的關鍵字符進行高亮顯示
-o:僅顯示匹配到的字符串自己
-v:顯示不被模式匹配到的行
-q:靜默模式,即不輸出任何信息
-A #:顯示被模式匹配的行及其後#行
-B #:顯示被模式匹配的行及其前#行
-C #:顯示被模式匹配的行及其先後各#行
-G:支持基本正則表達式
‘^‘: 匹配行首
‘$’: 匹配行尾
‘.‘: 匹配任一一個字符
‘*’: 匹配零個或多個先前字符
‘[]‘: 匹配一個指定範圍內的字符 | ‘[^]’匹配指定範圍外的任意單個字符
如下用到轉義字符‘\’的查詢條件必須有引號
‘\<‘或‘\b’:匹配詞首
‘\>’或‘\b’:匹配詞尾(可用\<PATTERN\>:匹配完整單詞)
‘\?‘:匹配其前面的字符0次或者1次;
‘\+’:匹配其前面的字符1次或者屢次;
‘\{m\}‘:匹配其前面的字符m次(\爲轉義字符)
‘\{m,n\}’:匹配其前面的字符至少m次,至多n次
‘\(\)’:將多個字符當作一個總體進行處理
特殊匹配方式
[:space:] 匹配空格
[:digit:] 匹配任意單個數字
[:lower:] 匹配任意單個小寫字母
[:upper:] 匹配任意單個大寫字母
[:alpha:] 匹配任意單個字母
[:alnum:] 匹配任意單個字母或數字
[:punct:] 匹配任意單個符號
先給你們看看我1.txt文件裏的內容
查詢凡是含「aj」的行並打印
查詢含‘a’或‘j’的行並打印
查詢行首含「aj」的行並打印
查詢行尾含‘a’或‘o’的行並打印
查詢詞首含‘j’的行
查詢詞尾含‘j’或‘a’的行
查詢以數字(0~9)開頭的行
查詢不以字母開頭的行
匹配含空格的行