在linux
下我們可以用到三個命令來查詢檔案,通常使用whereis或者是locate來檢查,如果真的找不到了我們就以find來找。因為whereis和locate是利用
資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就會花費很長的時間。
find指令需要在目錄結構中搜尋檔案,並執行指定的操作。它用於在檔案樹中查詢檔案,並做出相應的處理,可能訪問到磁碟。find命令提供了相當多的查詢條件,功能十分強大,所以它的選項也非常的多。即使系統中含有網路檔案系統(nfs),find命令在該檔案系統中同樣有效,只要你具有相應的許可權。
find指令的命令格式如下:
find pathname -options [-print -exec -ok ...]
它的命令引數有:
pathname: find
命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\; 之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
接下來我們就通過來看一下find指令的各種命令選項有什麼作用
①-name 按照檔名查詢檔案
我們可以看到在code目錄下中有file1的檔案,當輸入命令find -name file1的命令時,下面就給我們直接找到了這個檔案,而因為沒有file2這個檔案,所以在輸入find -name file2的命令時,就什麼都不輸出。
②-perm指令 按照檔案許可權來查詢檔案
輸入ll,各檔案許可權如圖,當輸入find -perm 755指令時,
輸出了以下檔案,其中便包含剛才有的許可權為755的檔案
③-user指令 按檔案屬主來找檔案
輸入find -user root ,表示使用者為root的檔案如下
④-group指令,按檔案所屬組來找檔案
輸入find -group root,表示所屬組為root的檔案如下
⑤-mtime -n +n指令,按照檔案的更改時間來查詢檔案,-n表示檔案更改時間距現在n天以內,+n表示檔案更改時間在n天以外。find命令還有-atime和-ctime選項,但都和-mtime選項相同。
輸入 find -mtime -8指令,表示8天以內被修改過的檔案如下
⑥還有-nogroup和-nouesr選項。
-nogroup 查詢無有效所屬組的檔案,即該檔案所屬的組在/
etc/groups中不存在。
-nouser 查詢無有效屬主的檔案,即該檔案的屬主在/etc/
passwd中不存在。
linux 用find命令查詢檔案大小為xx的檔案的辦法:
例如:乙個檔案5556位元組,可以這樣寫
find /root -size -5557c -size +5555c -exec ls -ld {} \;
即查詢大於5555位元組小於5557位元組的檔案,以上查詢的是/root目錄。
find /root -size -500k -size +50k -exec ls -ld {} \;
查詢 小於500k,大於50k的檔案。
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命令所查詢的目錄路徑...
Linux下find指令的使用
find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。find 選項 引數 選項 引數 起始目錄 查詢檔案的起始目錄。例項 根據檔案或者正規表示式進...