Linux命令 find命令詳解

2021-09-29 20:39:52 字數 4369 閱讀 9575

find命令格式

find path -option [-print]

[-exec -ok |

xargs

|grep]

[command \;

]# 引數說明

path: find命令所查詢的目錄路徑。

~ 表示$home目錄;

.來表示當前目錄;

/來表示系統根目錄。

-print: find命令將匹配的檔案輸出到標準輸出。

-exec: find命令對匹配的檔案執行該引數所給出的shell命令。

相應命令的形式為command

;,注意和;之間的空格。

-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。

|xargs: 與exec作用相同 ,起承接作用,區別在於|

xargs 主要用於承接刪除操作 ,而-exec都可用 如複製、移動、重新命名等。

options: 表示查詢方式

find命令引數

path:要查詢的目錄路徑。

print:表示將結果輸出到標準輸出。

exec:對匹配的檔案執行該引數所給出的shell命令。

ok:與exec作用相同,區別在於,在執行命令之前,都會給出提示,讓使用者確認是否執行。

|xargs:與exec作用相同 ,起承接作用,區別在於 |xargs 主要用於承接刪除操作 ,而 -exec 都可用 如複製、移動、重新命名等。

options:表示查詢方式。

options常用選項:

-name filename        #查詢名為filename的檔案

-perm #按執行許可權來查詢

-user username #按檔案屬主來查詢

-group groupname #按組來查詢

-mtime -n +n #按檔案更改時間來查詢檔案,-n指n天以內,+n指n天以前

-atime -n +n #按檔案訪問時間來查詢檔案,-n指n天以內,+n指n天以前

-ctime -n +n #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前

-nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在

-nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存

-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案

-size n[c]

#查長度為n塊[或n位元組]的檔案

-mount #查檔案時不跨越檔案系統mount點

-follow #如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案

-prune #忽略某個目錄

下面通過一些簡單的例子來介紹下find的常規用法:

1、按名字查詢

# 在當前目錄及子目錄中,查詢大寫字母開頭的txt檔案 

$ find

. -name '[a-z]*.txt' -print   

# 在/etc及其子目錄中,查詢host開頭的檔案

$ find /etc -name 'host*' -print   

# 在$home目錄及其子目錄中,查詢所有檔案   

$ find ~ -name '*' -print

# 在當前目錄及子目錄中,查詢不是out開頭的txt檔案   

$ find

. -name "out*" -prune -o -name "*.txt" -print

2、按目錄查詢

# 在當前目錄除aa之外的子目錄內搜尋 txt檔案   

$ find

. -path "./aa" -prune -o -name "*.txt" -print   

# 在當前目錄及除aa和bb之外的子目錄中查詢txt檔案   

$ find

. −path′./dir0′−o−path′./dir1′−path′./dir0′−o−path′./dir1′ -a -prune -o -name '*.txt' -print

# 在當前目錄,不再子目錄中,查詢txt檔案

$ find

.! -name "." -type d -prune -o -type f -name "*.txt" -print

# 或者

$ find

. -name *.txt -type f -print

3、按許可權查詢

# 在當前目錄及子目錄中,查詢屬主具有讀寫執行,其他具有讀執行許可權的檔案   

$ find

. -perm 755 -print

# 查詢使用者有寫許可權或者組使用者有寫許可權的檔案或目錄

$ find ./ -perm /220

$ find ./ -perm /u+w,g+w

$ find ./ -perm /u=w,g=w

4、按型別查詢

# 在當前目錄及子目錄下,查詢符號鏈結檔案   

$ find

. -type l -print

5、按屬主及屬組

# 查詢屬主是www的檔案   

$ find / -user www -type f -print   

# 查詢屬主被刪除的檔案

$ find / -nouser -type f -print   

# 查詢屬組 mysql 的檔案

$ find / -group mysql -type f -print   

# 查詢使用者組被刪掉的檔案

$ find / -nogroup -type f -print

6、按時間查詢

# 查詢2天內被更改過的檔案 

$ find

. -mtime -2 -type f -print   

# 查詢2天前被更改過的檔案

$ find

. -mtime +2 -type f -print   

# 查詢一天內被訪問的檔案

$ find

. -atime -1 -type f -print   

# 查詢一天前被訪問的檔案

$ find

. -atime +1 -type f -print   

# 查詢一天內狀態被改變的檔案

$ find

. -ctime -1 -type f -print   

# 查詢一天前狀態被改變的檔案

$ find

. -ctime +1 -type f -print   

# 查詢10分鐘以前狀態被改變的檔案

$ find

. -cmin +10 -type f -print

7、按檔案新舊查詢

# 查詢比 aa.txt 新的檔案 

$ find

. -newer "aa.txt" -type f -print   

# 查詢比 aa.txt 舊的檔案

$ find

.! -newer "aa.txt" -type f -print   

# 查詢比aa.txt新,比bb.txt舊的檔案

$ find

. -newer 'aa.txt'

! -newer 'bb.txt' -type f -print

8、按大小查詢

# 查詢超過1m的檔案 

$ find / -size +1m -type f -print   

# 查詢等於6位元組的檔案

$ find

. -size 6c -print   

# 查詢小於32k的檔案

$ find

. -size -32k -print

Linux 命令find詳解

find命令是用來在給定目錄下查詢符合條件的檔案 find 命令格式 find pathname options print exec pathname 表示find命令所查詢的檔案或目錄的路徑。例如 home print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執...

linux命令 find詳解

linux中find命令常見用法示例 find path option print exec ok command print 將查詢到的檔案輸出到標準輸出 exec command 將查到的檔案執行command操作,和 之間有空格 ok 和 exec相同,只不過在操作前要詢使用者 name fi...

Linux命令之find命令詳解

linux命令之find命令詳解 find命令是乙個在unix檔案系統中查詢檔案的常用命令,可以進行很多條件查詢。讓我們來看一些find命令的例項。語法 find 路徑 約束條件 如何查詢在檔名中含有指定關鍵字的檔案?下面這條命令查詢在 etc 目錄下所有檔名中含有 mail 的檔案。find et...