1. 程式人生 > 其它 >linux系統find命令的一些使用技巧

linux系統find命令的一些使用技巧

引數: 1.-name選項:按照檔名稱查詢,允許使用萬用字元 2.-type選項:按照檔案型別查詢 3.-user選項:按照檔案所有者查詢 4.-size選項:按照檔案大小查詢 5.-maxdepth<目錄層級〉:設定最大目錄層級 6.-mindepth<目錄層級〉:設定最小目錄層級   示例 1.find /etc -name "net*.conf"   查詢etc目錄下所有檔名是以"net"開頭,".conf"結尾的檔案 2.find /boot -type d         查詢boot目錄下所有的目錄 3.find /boot -size +1024k     查詢boot目錄下所有大於1024k的檔案 4.find /home -user horse     查詢home目錄下所有歸屬者是horse的檔案   基於目錄深度搜索
find /home -maxdepth 3 -type f   查詢向下最大深度限制為3層的普通檔案 find /home -mindepth 2 -type f   搜尋出深度距離當前目錄至少2層目錄的普通檔案   查詢時,忽略一個或多個目錄下檔案 注意:-path 的字首要和find的目錄一樣
#忽略單個目錄
#-a邏輯與,當-path "./var"為真,則執行-prune,返回真;-o邏輯或,增加查詢條件,與前面排除目錄條件組合輸出符合的內容
理解方法:find . {{{-path "./var"} -a {-prune}} -o {-name ".log"}} -print
find . -path "./var" -a -prune -o -name ".log" -print
#忽略多個目錄
find .  \( -path "./var" -o -path "./opt" \)  -a -prune -o -name ".log" -print
或者
#忽略單個目錄,其中./var*表示./var下所有檔案
find . ! -path "./var*"  -name ".log"
#忽略多個目錄
find . ! -path "./var*"  ! -path "./opt*" -name "*.log"
  查詢一個或多個目錄下檔案
#在當前目錄下的dir1目錄及dir1子目錄下查詢檔案
find ./ -path "./dir1*" -name 1.txt
#在當前目錄下的dir1、dir2目錄及dir1、dir2子目錄下查詢檔案
find ./ \( -path "./dir1*" -o -path "./dir2*" \) -name a
  查詢範圍時間內的檔案 引數 -mmin N 分鐘 -mtime N 小時 -newermt 指定日期檔案
find /home -type f -mmin -1   //查詢/home下在一分鐘內修改的檔案
find /home -type f -mmin +1   //查詢/home下在一分鐘前修改的檔案
find /home -type f -newermt "2022-5-06"   //查詢5月6號的檔案
查詢條件還有'-10 minutes' '-24 hours' '1 day ago ' 'yesterday'