find 命令在linux中是很常用到的一個查找命令,它的功能非常地強大??梢越Y(jié)合正則匹配來搜索系統(tǒng)中的指定的內(nèi)容,以下我就記錄一下這個find常用到的一些用法
?
首先我們來看年find的總體用法
find path option [-print -exec -ok]
其中path是指定在哪個路徑中查找內(nèi)容。如/var下查找內(nèi)容,option是find中的一些屬性值,常用的有-name,-type,-mtime,-ctime,-atime,-user,-group,-nouser,-nogroup,-perm等,[-print -exec -ok]是可選屬性值,-print是指把查找到的內(nèi)容輸出到指定的地方,-exec與-ok都是執(zhí)行另處的command命令,但兩都也有一點不同,-exec在執(zhí)行指定的command時不會給用戶顯示提示或操作信息,但是-ok就會在有提示詢問操作時給用戶顯示信息,直到用戶做了選擇時才繼續(xù)執(zhí)行。
?
常用的option值說明
-name 指定查找的內(nèi)容是文件。
-type 指定查找的文件的類型,它有d,l,b,p,f,c等文件類型,d是查找目錄,l是查找鏈接檔,b是查找塊文件,p是查找管道文件,f是普通文件,c是字符設(shè)備文件
-mtime,-ctime,atime都是指按時間查找,-mtime是文件的修改時間,-ctime是文件的創(chuàng)建時間,atime是后找開文件時間
-user是查找指定用戶帳號的文件
-group是查找指定組帳號的文件
-nouser查找無用戶帳號文件
-nogroup是查找無組帳號文件
?
下面舉幾個例子說明一下find的用法
(1)我想找出/etc目錄下是passw開頭的所有文件
?? find /etc -name "passw*"?
這個例子中"*"號是正則匹配中的“所有”的意思
(2)我想找出/var/log目錄下所有的前5天的.log文件
?? find /var/log -name "*.log" -mtime +5
這個例子中"+5"是指5天以前的文件,如是查"-5"則是5天以內(nèi)的文件
(3)我想找出/home目錄下是"ygl"這個用戶的文件
?? find /home -user "ygl"
(4)我想找出/home目錄下是"ygl"這個用戶的所有的普通檔的文件
?? find /home -user "ygl" -type f
(5)我想找出/var/log目錄下的所有的.log文件并查看它的詳細信息
?? find /var/log -name "*.log" -type f -exec ls -l {} \;
這個例子中用到了可選屬性-exec用來執(zhí)行l(wèi)s命令,其中的-exec或者-ok的用法都要在它所執(zhí)行的command后面接" {} \;"
(6)我想查找出在/etc中以passw開頭的所有文件中有沒有ygl這些內(nèi)容的
?? find /etc -name "passw*" -exec grep -in "ygl" {} \;
posted on 2006-11-06 09:34
小小程序程序員混口飯吃 閱讀(662)
評論(0) 編輯 收藏 所屬分類:
linux