Linux find 命令總結

2021-07-23 03:37:21 字數 4031 閱讀 4610

查詢檔案是非常常見的系統操作,linux可以使用find命令來進行檔案查詢,用好find命令,會讓你感受到前所未有的痛快。find有眾多選項和引數,熟練運用它們,你才能真正感受到find命令的強大,總結如下。

命令格式:

find pathname -option [-print] [-exec -ok command {} \;]

pathname 表示檔案查詢的基目錄,若不寫,預設為當前目錄./

find支援按以下方面進行查詢:

1、按檔名: -name ,-iname

find -iname "*test*"

#查詢檔案名含有test(不區分大小寫)的檔案

find -name

"*.py"

#查詢以.py結尾的檔案

2、按檔案型別:-type

支援型別

說明示例

f普通檔案

find /tmp -type f

d目錄

find /tmp -type d

b塊裝置

find /tmp -type b

c字元裝置

find /tmp -type c

l符合鏈結檔案

find /tmp -type l

p命令管道檔案

find /tmp -type p

s套接字檔案

find /tmp -type s

3、按檔案所有者、所屬組選項

引數說明

示例-user

username

根據屬主查詢

find -user mysql

-group

group

根據屬組查詢

find -group root

-uid

uid根據uid查詢

find -uid 999

-gid

gid根據gid查詢

find -gid 888

-nouser

查詢沒有屬主的檔案

find -nouser

-nogroup

查詢沒有屬組的檔案

find -nogroup

4、按檔案許可權:-perm

改選項後面接引數:[+|-|/] modemode表示許可權,可以用數字表示,如644,用二進位制可以表示為110 100 100;也可以寫成u=rw,g=r,o=r。對於mode,-mode,+mode,/mode,區別如下:

引數

說明示例

mode

嚴格匹配二進位制的每一位

find -perm 600 #許可權為600

-mode

匹配所有為1的位

find -perm -600 #所有者許可權為rw

+mode

至少匹配任意乙個為1的位

find -perm +600 #所有者有讀或寫許可權

/mode

至少匹配任意乙個為1的位

find -perm /600 #所有者有讀或寫許可權

還可以將檔案特殊許可權suid,sgid,sbit也考慮進去,suid : 4 ,sgid:2,sbit:1,如

find -perm 4700

#查詢rws------的檔案

find -perm u=rws #同4700

find -perm -0700

#查詢所有者許可權為rwx的檔案

find -perm -u=rws #同-4700

find -perm /0700

#查詢所有者有r或w或x的檔案

find -perm /u=rws #同+4700

5、按檔案時間選項

引數說明

-atime

[+|-]n

access time,最近一次訪問時間

-ctime

[+|-]n

change time,最近一次屬性修改時間

-mtime

[+|-]n

modify time,最近一次內容修改時間

-amin

[+|-]n

access min,最近一次訪問時間

-cmin

[+|-]n

change min,最近一次屬性修改時間

-mmin

[+|-]n

modify min,最近一次內容修改時間

引數說明

time

n發生在距離當前時間n*24小時至(n+1)*24 小時,[n*24,(n+1)*24)

-n發生在n天以前,距離當前時間為(n+1)*24小時或者更早,[(n+1)*24,∞)

+n發生在n天以內,距離當前時間為n*24小時以內,[0,n*24)

minn

發生在距離當前時間n分鐘至(n+1)分鐘,[n,n+1)

-n發生在n分鐘以前,距離當前時間為(n+1)分鐘或者更早,[n+1,∞)

+n發生在n天以內,距離當前時間為n分鐘以內,[0,n)

5、按檔案大小:-size

-size後接引數:[+|-]n[bcwkmg],+表示大於,-表示小於,bcwkmg為單位,含義見下:

find -size -2m -size +2k   #查詢的檔案2k到2m的檔案

find -size

80c #查詢大小為80個位元組的檔案

組合查詢

-a

-o

-not,!

"*.zip" -a -size +100m #也可以不寫-a

find -name

"*.zip" -o -size +100m

find -name

"*.zip" ! -size +100m

find 結果後續處理

find -name "*test*" -type f -ls  #ls列出詳細資訊

find -name "*test*" -type f -exec rm {} \; #-exec後接其他處理命令,{}表示find查詢的乙個結果,\;為固定寫法

find -name "*test*" -type f -ok rm {} \; #作用與-exec相同,區別在於-ok後面執行的命令需要使用者確認,而-exec不需使用者確認

結合管道命令 | ,xargs命令,可以實現更多的操作

find -name

"*.zip"

-ls| head

find /

-name

"mytest"

| xargs -i mv {} "mytest"

#xargs的-i選項表示用{}替代管道前的結果

find /

-name

"mytest"

| xargs -i {} mv {} "mytest"

#xargs的-i選項指明用{}替代管道前的結果

find的更多用法後面再做補充……

linux find 命令總結

這裡總結一些常用到的關於find的命令的操作 b find命令的一般形式為 b find pathname options print exec ok 讓我們來看看該命令的引數 pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹...

Linux Find 命令總結

三豐雲,免費虛擬主機和免費雲伺服器相當不錯,使用起來非常快,對於個人使用者來說足夠用了,有需要的朋友來看看吧,我已經使用過了 體驗很不錯的 1 按檔名遞迴查詢 find name filename 2 按檔名遞迴查詢,不區分大小寫 find iname filename 3 查詢當前目錄及深度為1的...

linux find命令總結

find命令 find命令是乙個實時查詢工具,通過遍歷指定路徑而完成對檔案的查詢 在使用該命令時,如果不選定引數,則在當前目錄下查詢子目錄與檔案並顯示之 另外,任何位於引數之前的字串,都將視為欲查詢的目錄名。由於是實時遍歷查詢,find有如下特性 精確實時查詢,速度慢可能只搜尋使用者具備讀取和執行許...