find命令


1.按名稱查找:-name
  1.1 確定文件名:find 【目錄】 -name 【文件名】

    舉🌰:在當前目錄及其子目錄下查找test.txt文件:find ./ -name test.txt

  1.2 文件名模糊查找

    舉🌰:在當前目錄及其子目錄下查找以test開頭的文件:find ./ -name "test*"。注意: 一定要加引號,https://blog.csdn.net/wgl307293845/article/details/109616467

2.按照類型查找:-type
  2.1 文件f

    舉🌰:查找當前目錄的所有文件:find ./ -maxdepth 1 -type f

  2.2 目錄d

    舉🌰:查找當前目錄的所有目錄:find ./ -maxdepth 1 -type d

3.指定目錄層次:-maxdepth -mindepth
  3.1 舉🌰,只在當前目錄查找:find ./ -maxdepth 1 -name "test*"

  3.2 舉🌰,在當前目錄的第二層和第三層目錄查找:find ./ -mindepth 2 -maxdepth 3 -name "test*"

  3.3 舉🌰,在當前目錄和下一層目錄查詢:find ./ -maxdepth 2 -name "test*"

4.按照文件擁有者、擁有組查找:-user -group
  4.1 擁有者(前面的)

    舉🌰:查找當前以及子目錄用戶是的root所有文件:find ./ -user root

  4.2 擁有組(后面的)

    舉🌰:查找當前以及子目錄用戶是root的所有文件:find ./ -group root

5.多個條件查找:-a 與;-o 或;-not 非
  5.1 舉🌰,在當前及子目錄查找用戶是xiaoqiang,用戶組是root的文件:find ./ -type f -a -user xiaoqiang -a -group root 。注意:-a 可省略,默認是且的關系

  5.2 舉🌰,在當前目錄查找用戶是xiaoqiang或是root的文件:find ./ -maxdepth 1 -type f -user xiaoqiang -o -user root 。 注意:當有多個條件時,-maxdepth放在最前面,-type/-name 次之,然后是其他條件

6.按文件大小查找:-size
  6.1. 20M表示大小正好是20M;-20M表示小於20M;+20M表示大於20M

    舉🌰:在當前及子目錄中查詢小於20M的文件:find ./ -size -20M

7.按照修改時間查找: -cmin
  7.1 1表示修改時間為1min的文件,-1表示在1min之內修改的文件,+1表示修改時間超過1min的文件;cmin中單位是分鍾,ctime單位是天

    舉🌰: 在當前及子目錄中查找修改時間不超過10分鍾的文件 find ./ -type f -cmin -10

  參數區別:

  amin表示訪問時間,

  cmin表示文件狀態被修改時間,如通過chmod修改文件屬性,cmin就會被修改

  mmin表示文件內容被修改的時間。

  相應的有atime、ctime、mtime

8.執行動作,對查找出來的文件執行動作:-exec command ;
  8.1 主要上述命令最后有分號,分號是用來給find做標記用的,find在解析命令的時候,要區分給定的參數是要傳給自己的還是要傳給command命令的,所以find以分號作為要執行命令所有參數的結束標記;

    舉🌰find ./ -maxdepth 1 -type f -group root -exec chown xiaoqiang:xiaoqiang {} \; 查找當前目錄 用戶組是root的文件,並將其用戶:用戶組修改為xiaoqiang:xiaoqiang

  解釋:{} 表示find查找的結果;最后的分號表示傳給-exec commond命令參數到此結束;\ 用來轉義最后的分號,因為分號也是bash的特殊字符,所以bash會先解釋它,前面加上\就可以讓bash直接將其傳遞給find命令,使這個分號由find解釋,而不是    bash。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM