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命令所查詢的目錄路徑...