Linux find 命令詳解
阿新 • • 發佈:2020-09-11
簡介:
Linux find 命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則 find 命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。
語法:
find path -option [ -print ] [ -exec -ok command ] {} \;
引數說明:
-name: 按照檔名查詢。 -iname:按照檔名查詢,忽略大小寫。 -perm: 按照檔案許可權來查詢檔案。 -user: 按照檔案屬主來查詢檔案。 -group:按照檔案所屬的組來查詢檔案。-mtime -n +n:按照檔案更改時間來查詢。【-7:7天之內;+7:7天前】 -nogroup:查詢無效屬組的檔案。 -nouser: 查詢無效屬主的檔案。 -newer file1 !file2 查詢更改時間比檔案 file1 新,但比 file2 舊的檔案。 -type:查詢某一型別的檔案,如: b:塊裝置檔案 d:目錄 f:普通檔案 c:字元裝置檔案 p:管道檔案 l:符號連結檔案 s:socket -size n:[c] 查詢檔案長度為n塊的檔案,帶有c表示檔案長度以位元組計算。 -depth: 查詢檔案時,首先查詢當前目錄中檔案,然後再查詢子目錄中檔案。-follow:查詢find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。 -mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案。 -amin n: 在過去 n 分鐘內被讀取過。 -anewer file: 比檔案 file 更晚被讀取過的檔案。 -atime n : 在過去n天內被讀取過的檔案。 -cmin n : 在過去 n 分鐘內被修改過。 -cnewer file :比檔案 file 更新的檔案。 -ctime n : 在過去n天內被修改過的檔案。 -ipath p, -path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫。-empty : 空的檔案-gid n or -group name : gid 是 n 或是 group 名稱是 name。 你可以使用 ( ) 將運算式分隔,並使用下列運算。 exp1 -and exp2 ! expr -not expr exp1 -or exp2 exp1, exp2
查詢普通檔案和目錄:
find /home/yoon -type f (普通檔案)
find /home/yoon -type d (普通目錄)
只顯示1級目錄檔案且過濾自身:
find ./ -maxdepth 1 -type d ! -name "hankyoon"
查詢一天內被訪問過的檔案:
find /home/yoon -atime -1 -type f
除了某個檔案以為,其餘的均刪除:
find /home/yoon -type f ! -name 1.sql -and -type f ! -name 1.sql | xarges rm -rf ls | grep -v "yoon.txt" | xarges rm -rf
刪除目錄下所有檔案:
find /home/yoon -type f -exec rm -rf {} \;
find /home/yoon -type f | xarges rm -rf
刪除7天以前的普通檔案:
find /home/yoon -type f -mtime +7 -exec rm -rf {} \;
刪除7天以前的普通檔案,在刪除之前詢問它們:
find /home/yoon -type f mtime +7 -ok rm -rf {} \;
查詢系統中所有檔案長度為0的普通檔案,並列出完整路徑:
find / -type f -size 0 -exec ls -l {} \;
按照目錄或者檔案許可權來查詢:
find /home/yoon -perm 777
按照時間來查詢:
find / -ctime +20 最近修改檔案時間20分鐘以前 find / -mtime +7 修改檔案為7天之前的(最重要) find / -mtime 7 修改檔案為第7天,就是往前推7天 find / -mtime -7 修改檔案為7天之內的