Linux中的find指令

2021-07-29 13:01:42 字數 2632 閱讀 8505

linux下的find命令在目錄結構中搜尋檔案,並執行指定的操作。

linux下的find命令提供了相當多的查詢條件,條件很強大。

find具有強大的功能,所以他的選項也很多,計時系統中含有網路檔案系統(nfs),find命令在該檔案系統中同樣有效,只要具有相應的許可權。在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放到後台執行,因為遍歷乙個大的檔案系統肯能會花費很長的時間(這裡是指30g位元組以上的檔案系統)。

1.命令格式:

find pathname -options [-print -exec -ok...]

2.命令功能:

用於在檔案中查詢檔案,並作出相應的處理(可能訪問磁碟)

3.命令引數:

pathname:find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

-path:find命令所查詢的目錄路徑。例如用.來表示當槍目錄,用/來表示系統根目錄。

-exec:find 命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command'{} \;注意{}和\ ;之間的空格。

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

4.命令選擇:

-name    按照檔名查詢檔案。

-perm     按照檔案許可權來查詢檔案。

-prune    使用這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使用-depth選項,那麼-prune獎被find命令忽略。

-user      按照檔案屬主來查詢檔案。

-group    按照檔案所屬的組來查詢檔案。

-mtime -n +n    按照檔案的更改時間來查詢檔案。-n表示更改時間距現在n天以內,+n表示檔案更改時間距現在n天以前。find命令還有-atine和-ctime選項,但它們都和-mtime選項相同。

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

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

-newer  file1 ! file2    查詢更改時間比檔案file1新但比檔案file2舊的檔案。

-type       查詢某一型別的檔案,諸如:

b -塊裝置檔案。

d -目錄。

c -字元裝置檔案。

p -管道檔案。

l -符號鏈結檔案。

f -普通檔案。

-size n:[c]  查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

-depth: 在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中 查詢。

-fstype: 查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案的資訊。

-mount: 在查詢檔案時不跨越檔案系統mount點。

-follow: 如果find命令遇到符號鏈結檔案,就跟蹤至鏈結所指向的檔案。

-cpio: 對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。

另外,下面三個區別:

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

例子:1. 在logs目錄中查詢更改時間在5天以前的檔案並刪除它們:

$find logs -type f -mtime +5 -exec -ok rm {} \

2.linux用find命令查詢檔案大小為xx的檔案的辦法

例如:乙個檔案555位元組,可以這樣寫 

find /root -size -555c -size +555c -exec is -id {} \;

即查詢大小554位元組小於556位元組的檔案,以上查詢的是/root目錄

find /root -size -500k -size +50k -exec is -id {} \;

查詢小於500k,大於50k的檔案

5.例項使用:

1.查詢指定時間內修改過的檔案

命令:find -atime -2(2天內修改過的檔案)

輸出:

2.根據關鍵字查詢

命令:find -name "incude"(在當前目錄查詢以.log結尾的檔案。「.」代表當前目錄)

輸出:3.按照目錄或檔案的許可權來查詢檔案

命令:find /code1/-perm 755(查詢/code1/目錄下許可權為755的檔案)

輸出:4.按型別查詢

命令:find -type f -name "*.log"(查詢當目錄以.log結尾的普通檔案)

輸出:例項5:查詢當前所有目錄並排序

命令:find -type d| sort

輸出:

例項6:按大小查詢檔案

命令:find -size + 1000c -print(查詢目錄大於1k的檔案)

輸出:

linux下的find指令

在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟...

Linux下的find指令

在linux 下我們可以用到三個命令來查詢檔案,通常使用whereis或者是locate來檢查,如果真的找不到了我們就以find來找。因為whereis和locate是利用 資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就...

Linux下的指令 查詢指令 find

linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。1.linux下find命令格式 find pathname options print exec ok 2.命令功能 用於在檔案樹中查詢檔案,並作出相應的處理 可能訪問磁碟 3.命令引數 pathname find命令所查詢的目錄路徑...