Linux命令(七)查找文件或目錄 find


   find 命令可以根據給定的路勁和表達式查找指定的文件或目錄。find 參數選項很多,並且支持正則表達式,功能強大。 和管道結合使用可以實現復雜的功能,是系統管理和普通用戶必須掌握的命令。 

一、find  命令格式說明

   path find命令查找的目錄路徑。

   -print find命令將匹配到的文件輸出到標准輸出。

   -exec find 命令對匹配的文件執行該參數所給出的Shell命令。

   -ok 和 -exec的作用相同,只是更安全,在執行每個命令之前,都會給出提示,讓用戶來確定是否執行。

二、find命令常用參數說明

  -name   按照文件名查找文件

  -cpio: 對匹配的文件使用 cpio 命令,將這些文件備份到磁帶設備中

  -prune 按照文件權限進行查找文件 

  -user 按照文件屬主來查找文件

  -group 按照文件所屬的組來查找文件

  -mtime -n +n 按照文件更改的時間來查找文件,-n 表示更改時間距現在 n 天以內,+n 表示更改時間距現在 n 天以前

   -nogroup 查找無效所屬組的文件

   -nouser 查找無效屬主文件

   -newer file1 !file2 查找更改時間比 file1 新但比 file2 舊的文件

   -follow 如果 find 查找的為鏈接文件,就跟蹤至連接所指向的文件

   -mount 在查找文件時不跨越文件系統 mount 點

   -fstype 查找位於某一類型文件系統中的文件

   -depth 在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找

   -size n 查找文件長度為 n 塊的文件,帶有 c 時表示文件長度以字節計

   -type 查找某一類型的文件

   -amin n 查找系統中最后 n 分鍾訪問的文件

   -atime n 查找系統中最后 n*24 小時訪問的文件

   -cmin n 查找系統中最后 n 分鍾被改變文件狀態的文件

   -ctime n  查找系統中最后 n*24 小時被改變文件狀態的文件

   -mmin n 查找系統中最后 n 分鍾被改變文件數據的文件

   -mtime n  查找系統中最后 n*24 小時被改變文件數據的文件

   -empty 查找系統中空白的文件或目錄,或目錄中沒有子目錄的文件夾

   -false 查找系統中總是錯誤的文件

   -gid n 查找系統中文件數字組ID為 n 的文件

   -daystart 測試系統中從今天開始 24 小時以內的文件,用法類似於 -amin

   -help 顯示命令摘要(幫助)

   -maxdepth levels 在某個層次目錄中按照遞減方法查找

三、find基本用法

   find 如不加任何參數,表示查找當前路徑下的所有文件和目錄

   find  -print    將結果打印到標准輸出

   find /data/log   指定路勁查找

  find   /   -name  "abc.txt"   在系統中查找 abc.txt 如果執行完畢沒有找到,則說明系統中不存在該文件

   find 還支持正則表達式查找

   find /data/logs -mame "*.log"  -type f -printf    查找符合指定字符串的文件

  find . -name "[0-9]" -type f   查找以數字開頭的文件

  find / -mtime -1 |head  查找系統內最近24小時修改過的文件

   find / -mmin  -15|head   查找系統內最近15 分鍾修改過的文件

find 使用 type 選項可以查找特定的文件類型,常見類型如下

  b 塊設備文件

  d 目錄

  c 字符設備文件

  p 管道文件

  l 符號鏈接文件

  f 普通文件

  find  . -type d  查找當前路徑中的所有目錄

  find  . -type f  查找當前路徑中的所有文件

    find  . -type l   查找當前路徑中的所有符號鏈接文件

  更多實例將在使用中不斷補充.....

四、xargs命令

  find命令可以把匹配到的文件傳遞給 xargs 命令執行,在使用 find 命令的 -exec 選項處理匹配到的文件時,find將所有匹配到的文件一起傳遞給 exec 執行。由於有些系統對能夠傳遞給 exec 的命令長度有限制,這樣會引起溢出錯誤。這時可以使用 xargs 命令。

  find / type f -print | xargs file    查找系統中的每一個普通文件,並用 file 命令來測試它們分別屬於哪一類文件。

  find . -type f -name "\.log" -print | xargs rm  查找當前目錄下的 .log 文件,並刪除 。

  find . -type f -exec ls -l {} \;  用 ls -l 列出所有匹配到的文件。

  find logs  -type f -mtime +5 -exec rm {} \;  查找 log 中更改時間在 5 天前的文件並刪除。

  find logs -type f -ok rm {} \;  查找 log中的所有普通文件並在刪除前確認。  

  find . -type f -name "\.log" -print | gerp "node"     查找當前目錄下的 .log 文件,並從查找結果中篩選出帶有 node 字符串的文件 。

  


免責聲明!

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



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