1、搜檔案
find / -name filename
2、在某個目錄(如/home)下查找檔案file
find /home -name file
3、過濾報錯搜檔案
find / -name access_log 2>/dev/null
4、模糊檔案名查找
find /etc -name '*srm*'
5、使用and ,or 分别表示“與”和“或”的關系
a、在/tmp目錄中查找大于100000000位元組并且在48小時内修改的某個檔案
find /tmp -size +10000000c -and -mtime +2
b、在/tmp目錄中查找屬于fred或者george這兩個使用者的檔案
find / -user fred -or -user george
6、使用“非”的關系來查找檔案
a、在/tmp目錄中查找所有不屬于panda的檔案
find /tmp ! -user panda
7、查找到httpd.conf檔案後立即在螢幕上顯示httpd.conf檔案資訊
find / -name "httpd.conf" -ls
-exec command 查找并執行指令
-fprint file 列印檔案完整檔案名
-fprint0 file 列印檔案完整檔案名包括空的檔案
-fprintf file format 列印檔案格式
-ok command 給使用者指令執行操作,根據使用者的Y 确認輸入執行
-printf format 列印檔案格式
-ls 顯示同種檔案格式的檔案
-amin n 查找系統中最後N分鐘通路的檔案
-atime n 查找系統中最後n*24小時通路的檔案
-cmin n 查找系統中最後N分鐘被改變狀态的檔案
-ctime n 查找系統中最後n*24小時被改變狀态的檔案
-empty 查找系統中空白的檔案,或空白的檔案目錄,或目錄中沒有子目錄的檔案夾
-false 查找系統中總是錯誤的檔案
-fstype type 查找系統中存在于指定檔案系統的檔案,例如:ext2 .
-gid n 查找系統中檔案數字組 ID 為 n的檔案
-group gname 查找系統中檔案屬于gnam檔案組,并且指定組和ID的檔案
8、 find / -amin -10 # 查找在系統中最後10分鐘通路的檔案
find / -atime -2 # 查找在系統中最後48小時通路的檔案
find / -empty # 查找在系統中為空的檔案或者檔案夾
find / -group cat # 查找在系統中屬于 groupcat的檔案
find / -mmin -5 # 查找在系統中最後5分鐘裡修改過的檔案
find / -mtime -1 #查找在系統中最後24小時裡修改過的檔案
find / -nouser #查找在系統中屬于廢棄使用者的檔案
find / -user fred #查找在系統中屬于FRED這個使用者的檔案
9、查找檔案大小為1,500 bytes
find / -size 1500c (字元 c 表明這個要查找的檔案的大小是以bytes為機關)
10、查找出大于10000000位元組的檔案并顯示出來
find/ -size +10000000c (指令中的“+”是表示要求系統隻列出大于指定大小的檔案,而使用“-”則表示要求系統列出小于指定大小的檔案)
11、在目前(.)目錄技巧子目錄中查找一個名叫fred的檔案(最大的查詢目錄級别為2)
find . -maxdepth 2 -name fred
-daystart 測試系統從今天開始24小時以内的檔案,用法類似-amin
-depth 使用深度級别的查找過程方式,在某層指定目錄中優先查找檔案内容
-follow 遵循通配符連結方式查找; 另外,也可忽略通配符連結方式查詢
-help 顯示指令摘要
-maxdepth levels 在某個層次的目錄中按照遞減方法查找
-mount 不在檔案系統目錄中查找, 用法類似 -xdev.
-noleaf 禁止在非UNUX檔案系統,MS-DOS系統,CD-ROM檔案系統中進行最優化查找
-version 列印版本數字
12、删除以r開頭的大小為0的檔案指令
find . -name "r*" -type f -size 0c | xargs -n 1 rm -f
====================
1 指令格式:
$ find <指定目錄> <指定條件> <指定動作>
最常見示例:查找檔案名(忽略大小寫)
$find . -iname sqlquery.java
1.1 <指定目錄>:
所要搜尋的目錄及其所有子目錄。預設為目前目錄。find預設遞歸指定目錄。目錄可以有多個,目錄之間要用空格分開。
[[email protected]]$find /etc /tmp /root -name passwd
1.2 <指定條件>:
所要搜尋的檔案的特征。
[1]根據檔案名查找
-name 按照檔案名查找
-iname 根據檔案名查找,但是不區分大小寫
-prune 不在目前指定的目錄中查找
-depth 在查找檔案時,首先查找目前目錄中的檔案,然後再在其子目錄中查找
[2]根據檔案所屬使用者群組來查找檔案
-user 按照檔案屬主來查找檔案
$find / -user fred //查找在系統中屬于FRED這個使用者的檔案
-group 按照檔案所屬的組來查找檔案
$find / -group cat //查找在系統中屬于group組名cat的檔案
[3]根據uid 和 gid來查找使用者
-uid
#find /tmp -uid 500 //查找uid是500 的檔案
-gid
#find /tmp -gid 1000 // 查找gid是1000的檔案
[4]-a,-o,-not的使用
-a 連接配接兩個不同的條件(兩個條件必須同時滿足)
#find /tmp -name "*.sh" -a -user root
-o 連接配接兩個不同的條件(兩個條件滿足其一即可)
#find /tmp -name "*.sh" -o -user root
-not 對條件取反的
#find /tmp -not -user root
[5]根據檔案時間戳的相關屬性來查找檔案
-atime 最近一次通路時間 機關:天
-mtime 最近一次内容修改時間 機關:天
-ctime 最近一次屬性修改時間 機關:天
-amin 最近一次通路時間 機關:分鐘
-mmin 最近一次内容修改時間 機關:分鐘
-cmin 最近一次屬性修改時間 機關:分鐘
-newer file1 ! file2 查找更改時間比檔案file1新但比檔案file2舊的檔案
#find /tmp -atime +5 //表示查找在五天内沒有通路過的檔案
#find /tmp -atime -5 //表示查找在五天内通路過的檔案
[6]根據檔案類型來查找檔案
-type 查找某一類型的檔案
檔案類型:
f 普通檔案
d 目錄
l 符号連結檔案
c 字元裝置檔案
p 管道檔案
b 塊裝置檔案
s socket檔案
#find /tmp -type s
[7]根據大小來查找檔案
-size n[c] 查找檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計
#find /tmp -size 2M //查找在/tmp 目錄下等于2M的檔案
#find /tmp -size +2M //查找在/tmp 目錄下大于2M的檔案
#find /tmp -size -2M //查找在/tmp 目錄下小于2M的檔案
$find . -size +1000000c //在目前目錄下查找檔案長度大于1 M位元組的檔案
$find / -empty //查找在系統中為空的檔案或者檔案夾
[8]根據檔案權限查找檔案
-perm
#find /tmp -perm 755 //查找在/tmp目錄下權限是755的檔案
#find /tmp -perm +222 //表示隻要有一類使用者(屬主,屬組,其他)的比對寫權限就行
#find /tmp -perm -222 //表示必須所有類别使用者都滿足有寫權限
[10]-nouser和-nogroup
-nogroup 查找無有效所屬組的檔案,即該檔案所屬的組不存在
-nouser 查找無有效屬主的檔案
#find / -nogroup -a -nouser //在整個系統中查找既沒有屬主又沒有屬組的檔案(這樣的檔案通常是很危險的,作為系統工程師的我們應該及時清除掉)
$find / -nouser //查找在系統中屬于廢棄使用者的檔案
1.3 <指定動作>:
對搜尋結果進行特定的處理。
-print //預設情況下的動作
-ls //查找到後用ls 顯示出來
-ok [commend] //查找後執行指令的時候詢問使用者是否要執行
-exec [commend] //查找後執行指令的時候不詢問使用者,直接執行
注意-ok和-exec指令将指令行上後續的參數作為他們參數的一部分,直到被\;序列終止。魔術字元串{}是-ok和-exec指令的一個特殊類型的參數,它将被目前檔案的完整路徑取代。
#find /tmp -atime +30 –exec rm –rf {} \; //删除查找到的超過30天沒有通路過檔案
這裡要注意{ }的使用:替代查找到的檔案
#find /tmp -name "*.old" | xargs chmod 700
2 指令舉例
搜尋/etc目錄下的檔案名包含del的檔案。
$find /etc -name '*del*'
系統查找到"config.py"檔案後即時在螢幕上顯示"config.py"檔案資訊。
$find . -name "config.py" -ls
搜尋目前目錄中,所有過去10分鐘中更新過的普通檔案。如果不加-type f參數,則搜尋普通檔案+特殊檔案+目錄。
$ find . -type f -mmin -10
find ./ ! -name "*.gz" ! -name '.'|xargs rm -fr
<b>點我親╭(╯3╰)╮</b>