筆記整理之文件查找---find

    相對於locate,find的優點在於實時查找,精確,支持許多查找標準,單其查找時需要遍歷所有文件,速度較慢

基本用法

find [查找路徑] 匹配標準 處理動作

查找路徑:可省略,默認爲當前目錄

查找標準,默認爲顯示查找路徑下的所有文件

處理動作,默認爲打印


匹配標準

-name 'FILENAME' 對文件名精確查找,可使用通配符

    ?   代表一個字符

    *   代表任意字符

    []  包含

    ...

-iname 'FILENAME' 對文件名查找並且不區分大小寫

-user USERNAME 根據屬主查找

-group GROUPNAME 根據數組查找

-uid UID 根據UID查找

-gid GID 根據GID查找

-nouser 查找沒有屬主的文件

-nogroup 查找沒有屬組的文件

-type [fdcblps]匹配文件類型

    f:普通文件

    d:目錄

    c:字符設備

    b:塊設備

    l:連接文件

    p:管道

    s:套接字

-size [+-][MGk] 按大小查找,默認單位爲字節

    +:大於的

    -:小於的

    +10M:大於10M,-10M:小於10M

組合查找(默認爲與關係)

-a同時必須滿足,查找系統上沒有屬主的普通文件

    find / -nouser -a type f

-o滿足其中一個條件即可,查找系統上沒有屬主的文件或塊設備

    find / -nouser -o -type -b

-not不滿足條件,查找系統上非普通文件

    find / -not -type d

    查找當前目錄下不能是用戶不是user1且不是user2的所有文件  

    find ./ -not -user user1 -a -not -user user2

    find ./ -not \(-user user1 -o user2 \)


根據修改,訪問時間查找

-atime    Access time,最後一次讀取的時間, ls –lu filename

-mtime    Modified time,文件內容最後一次修改的時間,ls –l filename

-ctime    Create time,修改修改文件權限,文件名或移動的時間,ls –lc filename

-amin     查找atime的偏移量,單位分鐘

-mmin               查找mtime 的偏移量,單位分鐘

-cmin                 查找ctime的偏移量,單位分鐘


find . [-atime|-ctime|-mtime] [-/+]num

+num:表示發生在>num天以前

-mum:表示發生在>0 且<num天以內

num:表示發生在前=num天的時候


舉例:以查找mtime修改文件爲例

    07-26 03:25 mbox

    08-14 21:43 xxxx

查找19天以內修改的文件

    find ./ -mtime -19 查找結果爲xxxx

查找前第19天修改的文件

    find ./ -mtime 19 查找結果mbox

查找18天前修改過的文件

    find ./ -mtime +18 查找結果是mbox


find . [-amin|-cmin|-mmin] [-/+]num

+num:表示發生在>num分鐘以後

-mum:表示發生在>0且<num分鐘以內

num:表示發生在前=num分鐘的時候


舉例:以查找mmin爲例

當前時間:8-14 22:07:23

    08-14 21:43 xxxx

    07-26 03:25 mbox

查找30分鐘以內修改過的文件

    find ./ -mmin -30 查詢結果爲xxxx

查找前第24分鐘時修改過的文件

    find ./ -mmin 24 查詢結果爲xxxx

查詢修改時間超過30分鐘的文件

    fing ./ -mtime +30 查詢結果爲mbox


權限查找

-perm mode 每一位精確匹配

-perm -mode 文件權限完全包含此mode才顯示

-perm /mode 9位中任意匹配就顯示

-perm +mode 已被-perm /mode取代


查找當前文件夾rwx------權限的文件

find ./ -perm 700

查找當前文件夾含有x權限的文件

find ./ -perm /111

查找當前文件夾含有屬主其中含有r和w權限的文件夾

find ./ -perm -600



動作

-print :默認顯示 可以不加

-ls:類似ls -l的顯示

-ok COMMAND {} \;後接COMMAND,必須以\;結尾,{}引用前面查詢的結果,每一次操作需要用戶確認;

-exec COMMAND {} \;和-ok COMMAND {} \;意義相同,但不需要用戶確認操作.\

xargs 從標準輸入

找到當前目錄下超過1K的文件.並把結果輸出到文件

find ./ -size +1k |xargs echo > ./print.s


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章