find 命令功能非常的強(qiáng)大,支持的參數(shù)很多,這里簡單講解一些平時(shí)常用的命令
查找命令的基本格式為:
** find [查找范圍] [查找條件] **
查找范圍
可以使用全路經(jīng),也可以使用相對路徑
查找條件
按文件名查找
格式:-name filename 和 -iname filename
-name 查找是完全匹配,如果要查使用模糊查找,需要做兩件事情:1. 文件名使用引號,2. 使用通配符。3種通配符:
- * : 匹配任意多個(gè)任意字符
- ? : 匹配0個(gè)或1個(gè)任意字符
- [] : 匹配括號中的任意字符
touch abc abd abe abf #新建4個(gè)文件:abc abd abe abf
find . -name abc #在當(dāng)前目錄查找abc 文件,完全匹配:abc
find . -name "*[cd]" #在當(dāng)前目錄查找 c或d結(jié)尾的文件,模糊匹配:abc, abd
若想忽略文件大小寫時(shí),使用-iname,用法同 -name
按時(shí)間查找
格式:-mtime time 和 -atime time 和 -ctime time
區(qū)別:
-mtime修改文件的時(shí)間-atime文件訪問的時(shí)間-ctime修改文件屬性的時(shí)間
find . -mtime +10 #查找10天之前修改的文件(不包括第10天)
find . -mtime 10 #查找過去第10天修改的文件
find . -mtime -10 #查找10天之內(nèi)的修改文件(不包括第10天)
注:
-mtime 后面是過去的時(shí)間,‘+’表示大于,‘+10’表示過去10天之前; ‘-’表示小于,‘-’表示過去10天之內(nèi);
按所屬用戶查找
格式: -user username 或者 -nouser
find . -user root #查找屬于用戶root的文件
find . -nouser #查找沒有任何用戶屬性的文件
如果查找不屬于任何用戶的文件,使用-nouser,因?yàn)閘inux系統(tǒng)中所有文件都應(yīng)該有所屬用戶,所以沒有所屬用戶的文件都是垃圾文件(除了內(nèi)核文件和外部文件如U盤, 他們可能沒有所屬文件)
按文件大小查找
格式: -size size
find . -size 10k # 文件大小為10k, k單位小寫
find . -size +2M # 文件大于2M ,M單位大寫
多條件搜索
格式:使用-o 或 -a連接
-o:or,或的關(guān)系
-a:and,與的關(guān)系,可以默認(rèn)關(guān)系,可以省略
find . -size -10M -o -size + 100M #查找大于100M或者小于10M的文件
find . mtime -10 -a -user www-data #查找10天內(nèi),屬于www-data用戶的文件
find . mtime -10 -user www-data #與上同,省略 -a
對搜索出來的文件進(jìn)一步處理
格式:-exec/-ok 命令 {} \;
若需要對搜索出來的文件進(jìn)一步處理,使用 -exec或者是-ok命令
find . -name '*conf' -exec ls -lh {} \; #查找以conf結(jié)尾的文件的詳細(xì)信息
find . -name "*test*" -exec rm {} \; #刪除所有文件名包含test的文件
本節(jié)內(nèi)容參考視頻: http://www.imooc.com/video/4048