文件名的查找——find


  查找文件!!!

  • 命令格式:find [PATH] [option] [action]

 

一、參數1——與時間有關的參數

  • -atime、-ctime、-mtime

  -mtime n:在n天之前的“一天之內”被更改過的文件名

  -mtime +n:在n天之前(不含n天本身)被更改過的文件名

  -mtime -n:在n天之內(含n天本身)被更改過的文件名

  -newer file:比file還要新的文件名

  注:這三個基於時間的參數的計量單位是“天”,天數前面帶的-代表小於,而+代表大於。

范例一:將過去系統上面24小時內有改動(mtime)的文件列出

執行命令:find / -mtime 0

評講:0代表目前的時間,所以,從現在開始到24小時前,有改動內容的文件都會被列出來。

范例二:將過去系統上面3天前的24小時內有改動(mtime)的文件列出

執行命令:find / -mtime 3

范例三:尋找/etc下面的文件,如果文件日期比/etc/passwd新就列出

執行命令:find /etc -newer /etc/passwd

 

二、參數2——與用戶或用戶組名有關的參數

  • -uid UID、-gid GID、-user 用戶賬號名稱-group 用戶組名
  • -nouser:尋找文件的所有者不存在於/etc/passwd的文件
  • -nogroup:尋找文件的所有用戶組不存在於/etc/group中的文件

范例一:查找/home下面屬於liuyu的文件

執行命令:find /home -user liuyu

評價:這個命令可以將屬於某個用戶的所有文件都找出來

范例二:查找系統中不屬於任何人的文件

執行命令:find / -nouser

 

三、參數3——與文件權限及名稱有關的參數

  • -name 文件名:根據文件名查找文件
  • -size [+-]SIZE:查找比SIZE還要大(+)或小(-)的文件
  • -type TYPE:查找文件類型為TYPE的
  • -perm mode:查找文件權限“剛好等於”mode的文件
  • -perm -mode:查找文件權限“必須要全部包括mode的權限”的文件
  • -perm +mode:查找文件權限“包含任一mode的權限”的文件

范例一:找出文件名為passwd的這個文件

執行命令:find / -name passwd

范例二:找出系統中大於1MB的文件

執行命令:find / -size +1000k

范例三:找出/var目錄下文件類型為Socket的文件名有哪些

執行命令:find /var -type s

范例四:查找文件當中含有SGID或SUID或SBIT的屬性

執行命令:find / -perm +7000

 

四、其他可進行的操作

  • -exec 命令:-exec后面可再接其他的命令來處理查到的結果
  • -print:將結果打印到屏幕上,這個操作是默認操作

范例一:將上一范例找到的文件使用ls -l列出來

執行命令:find / -perm +7000 -exec ls -l {} \;

【評講】

  1. {}:代表的是“由find找到的內容”,我們可以想象find的結果會被放置到{}位置中
  2. {}是一個與-exec選項搭配使用的特殊字符串,對於每一個匹配的文件,{}會被替換成相應的文件名
  3. -exec一直到\;是關鍵字,代表find額外命令的開始(-exec)到結束(\;),在這中間的就是find命令內的額外命令。在本例中就是“ls -l {}”
  4. 因為“;”在bash環境下是有特殊意義的,因此利用反斜杠來轉義
  5. 如:find . -name "*.txt" -exec cp {} 某個目錄 \;  //將當前目錄下的以.txt結尾的文本文件復制到

 

五、其他

  • find 目錄

  列出當前目錄及子目錄下所有的文件和文件夾

  注:和ls的區別在於子目錄下的文件和目錄也會被列出來

  • find 目錄 -maxdepth 深度n
  • find 目錄 -mindepth 深度n

  注:深度n來限制find命令遍歷的目錄深度,-maxdepth指定最大深度,而mindepth指定最小深度。

  如:find . -maxdepth 1 的作用效果就等同於 ls

  • find 目錄 -type d|f|l|c|b|s|p

  如:find . -type f  列出當前目錄下的文件

  • find 目錄 -size +2k  大於2KB的文件
  • find 目錄 -size -3M  小於3MB的文件

 


免責聲明!

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



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