Linux下強大的查詢命令find 用法和常見用例

2022-04-03 00:23:37 字數 3060 閱讀 9702

linux系統下find是較為常用的指令,find命令在目錄結構中搜尋檔案,並執行指定的操作,掌握它的形式與用法對我們很有用處。

因為linux下面一切皆檔案,經常需要搜尋某些檔案來編寫,所以對於linux來說find是一條很重要的命令。linux下面的find指令用於在目錄結構中搜尋檔案,並執行指定的操作。它提供了相當多的查詢條件,功能很強大。在不指定查詢目錄的情況下,find會在對整個系統進行遍歷。

即使系統中含有網路檔案系統,find命令在該檔案系統中同樣有效。 在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可能會花費很長的時間。

命令功能

用於在檔案樹中查詢檔案,並做相應的處理,(有可能訪問磁碟)。

1.find命令的格式

find pathname -options [-print -exec -ok ...]
2.命令引數pathname:  find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄; 

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

-exec:  find命令對匹配的檔案執行該引數所給出的shell命令,為查詢完成以後的操作。

相應命令的形式舉例如

-exec ls -l {} \;

注意和\;之間的空格;  

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

格式為:

-ok ls -l {} \;

3.命令選項

-options:

-name :  按照檔名查詢檔案;

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

-prune:  使用這一選項可以使find命令不在當前指定的目錄中查詢,

如果同時使用-depth選項,那麼-prune將被find命忽略;

-user:  按照檔案屬主來查詢檔案;

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

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

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

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

find -nogroup

find -nouser

-newer file1:查詢更改時間與檔案file1更改時間最近的檔案;

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

b - 塊裝置檔案; d - 目錄; c - 字元裝置檔案; p - 管道檔案; l - 符號鏈結檔案;f - 普通檔案;

-size  n  +[c]代表以位元組計即查詢位元組為n的檔案,+n(表示大於n位元組的檔案),-n(表示小於n位元組的檔案);

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

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

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

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

4.命令功能

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

5.總結

由以上可知 linux下find命令提供了相當多的查詢條件,選項很多,功能很強大,即使系統中含有網路檔案系統(nfs),find命令在該檔案系統中同樣有效,只要你具有相應的許可權。

所以在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可能會花費很長的時間 (這裡是指30g位元組以上的檔案系統)。

(以上舉例命令引數pathname基本都沒有明確給出,預設為當前路徑)

linux下強大的lftp命令

1 linux lftp命令 詳解 原貼 linux常用技巧 4 17th,2008 原來一直認為wget很好用,很少用lftp.研究了一下.沒想到lftp也這麼強大 lftp help 語法介紹 lftp opts lftp 是在 rc 檔案執行後 lftp 執行的第乙個命令 f 執行檔案中的命令...

Linux下強大的tail命令

文章目錄 tail命令用於輸入檔案中的尾部內容。tail命令預設在螢幕上顯示指定檔案的末尾10行。如果給定的檔案不止乙個,則在顯示的每個檔案前面加乙個檔名標題。如果沒有指定檔案或者檔名為 則讀取標準輸入。tail 選項 引數 f 迴圈讀取 q 不顯示處理資訊 v 顯示詳細的處理資訊 c 數目 顯示的...

強大的查詢命令find

find命令是乙個無處不在命令,是linux中最有用的命令之一。find命令用於 在乙個目錄 及子目錄 中搜尋檔案,你可以指定一些匹配條件,如按檔名 檔案型別 使用者甚至是時間戳查詢檔案 1.locate filename 在檔案資料庫中搜尋filename資訊,updatedb更新檔案資料庫 2....