find命令小結

1、find命令:默認當前目錄,且爲遞歸搜索。

     語法:find [OPTION] 。

     OPTION的類型:查找路徑、查找條件、處理動作。

     查找條件(指定的查找標準,可以是文件名、大小、類型、權限等標準進行;默認爲找出指定路徑下的所有文件)。

 

2、查找層級

    ①find -maxdepth N. -name filename:最大搜索深度 1 層(當前目錄下 1 層),且 -name 和 -maxdepth 命令順序不能交換。同理還有find -mindepth N. -name filename ,也即:層級命令優先級較高

    ②使用 -maxdepth 後面不加搜索的文件名,則會列出指定層級的目錄。

    ③同時使用 -maxdepth N. 和 -mindepth N. 中 N. 爲同一個數值,則只搜索指定層級。

 

3、按文件名查找

     ①find PATH -name filename :按文件名查找。

     ②find PATH -iname :不區分大小寫。

     PATH爲路徑,可有可無。

 

4、只搜索文件或目錄

     find PATH -type TYPE :按類型搜索文件。

     • f : (file)普通文件,查找文件;     

     • d: (dictionary)目錄文件,查找目錄;

     • l:符號鏈接文件;

     • find PATH -type d/f -empty :查找空文件或目錄。

 

5、按屬主、組主查找

     • find -user USERNAME:查找屬主爲指定用戶(UID)的文件

     • find -group GRPNAME: 查找屬組爲指定組(GID)的文件

     • find -uid UserID:查找屬主爲指定的UID號的文件

     • find -gid GroupID:查找屬組爲指定的GID號的文件

     • find -nouser:查找沒有屬主的文件

     • find -nogroup:查找沒有屬組的文件

 

6、按時間查找

     -mtime -/+N.:按文件更改時間來查找文件,-n指n天以內,+n指n天以前;

     -atime -/+N.:按文件訪問時間來查找文件;

     -ctime -/+N.:按文件創建時間來查找文件。

     • atime、mtime、ctime 都是以天爲單位,amin、mmin、cmin 都是以分鐘爲單位。

 

7、按權限查找

      • find PATH  -perm 權限(find type f -perm 0777 -print :找到當前文件夾下權限爲0777的文件並打印到屏幕)。

      • find -perm +222:只要當任意人有寫權限時就會匹配

      • find -perm -222:只有當每個人都有寫權限時纔會匹配

 

8、按文件大小

     -size [+|-]#UNIT

     常用單位:k, M, G,c(byte)

     #UNIT: (#-1, #]

         如:6k 表示(5k,6k]

     -#UNIT:[0,#-1]

         如:-6k 表示[0,5k]

     +#UNIT:(#,∞)

         如:+6k 表示(6k,∞)

 

9、參數替換xargs

     xargs:由於很多命令不支持管道 | 來傳遞參數,xargs用於產生某個命令的參數,xargs可以讀入 stdin 的數據,並且以空格符或回車符將 stdin 的數據分隔成爲參數。

     xargs命令處理動作:

     ①-print:默認的處理動作,顯示至屏幕;

     ②-ls:類似於對查找到的文件執行“ls -l” 命令;

     ③-delete:刪除查找到的文件;

     ④-fls file:查找到的所有文件的長格式信息保存至指定文件中;

     ⑤-ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對於每個文件執行命令之前,都會交互式要求用戶確認;

     ⑥-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令。

     例:$find ./ -type f -exec grep“^#!*”{} \;(找到當前文件夾下含有以 #! 字符串開頭的文件)

 

10、與或非

      • 組合條件:①與:-a    ②或:-o    ③非:-not !

      • 德·摩根定律:

     (非 A) 或 (非 B) = 非(A 且 B)

     (非 A) 且 (非 B) = 非(A 或 B)

    (這個我不亂寫了,怕寫錯)

 

11、locate查找命令

      • locate:基於索引數據庫進行搜索,較爲快速;

      • locate查找支持模糊搜索;

      • 搜索的是文件的全路徑,不僅僅是文件名;

      • 可能只搜索用戶具備讀取和執行權限的目錄;

      • 語法:locate KEYWORD:

     -i:不區分大小寫的搜索

     -n N.: 只列舉前N個匹配項目

     -r:使用基本正則表達式


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章