歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux下關於find命令的總結

Linux下關於find命令的總結

日期:2017/3/3 12:35:00   编辑:Linux技術
Q1:為什麼要學會使用find?
每個操作系統都由無數的文件組成,Linux更是如此。Linux下,有一個統一的思想:一切皆文件。在windows我們可以通過文件查找功能實現對文件的查找,通過後綴的不同來確定同名文件中,我們最終要找的文件是哪個。而Linux下我們就不能通過圖形化界面的文件查找功能得到我們想要的,需要借助find指令,並且Linux下的文件是沒有後綴的,所以一個同名的文件可以通過其文件屬性的不同區分,也有可能一個同名文件在不同的目錄下。所以當我們需要對特定文件進行修改或者維護時,我們就需要借助搜尋指令去找到這個文件。
Q2:Linux下是不是只有一種查找指令?
當然不是。
linux下的查找指令有,whereis,which,locate和find,那麼來看看他們的區別。
which:尋找當前PATH下的需要尋找的指令路徑
-a :將所有由 PATH 目錄中可以找到的指令均列出,而不止第一個被找到的
指令名稱
whereis:尋找特定文件(速度快,利用數據庫搜尋)
-b :查找特定二進制文件
-m:找說明文件在manual路徑下的文件
-s:只找source來源文件
-u:查找不含以上三種的文件
locate:尋找文件(利用數據庫),有可能一個文件剛剛建立,無法找到;或者已經被刪除的文件依然被找到了,都跟數據庫的更新有關。
#locate
-i //查找文件的時候不區分大小寫 比如:locate –i passwd
-n //只顯示查找結果的前N行 比如:locate -n 5 passwd
find:功能強大,在目錄下搜索文件,並可以執行指定操作,提供了相當多的查找條件(搜尋硬盤)
Q3:find指令用法總結

find [指定查找目錄] [查找規則] [查找完後執行的action]

【查找規則】:
(1)根據文件名查找
-name:根據文件名查找 -iname:根據文件名查找(不區分大小寫)(* :通配任意字符; ?:通配任意單個字符; []:通配方括號中的任意一個字符)


(2)根據文件所屬用戶和組群查找
-user :根據文件所屬用戶查找
-group:根據文件所屬組群查找
(3)根據文件的uid和gid來查找
(GID為GroupId,即組ID,用來標識用戶組的唯一標識符)
(UID為UserId,即用戶ID,用來標識每個用戶的唯一標示符)
-uid:根據文件所屬用戶id查找
-gid:根據文件所屬組群id查找
(4)-a (and) -o (or) -not (!)來查找
-a:連接兩個不同的條件,條件一成立“且”條件二成立,的文件查找
-o:連接兩個不同的條件,條件一成立“或”條件二成立,的文件查找
-not:對條件取反進行查找



(5)根據時間戳的相關屬性查找
-atime:最近讀取時間(天)
-ctime:最近狀態更改時間(天)
-mtme: 最近內容更改時間(天)
-amin: 最近讀取時間(分鐘)
-cmin: 最近狀態更改時間(分鐘)
#find /tmp –atime +5 //表示查找在五天內沒有訪問過的文件

#find /tmp -atime -5 //表示查找在五天內訪問過的文件


(6)根據文件類型查找
-type f // 普通文件 d //目錄文件 l //鏈接文件 b //塊設備文件 c //字符設備文件 p //管道文件 s //socket文件



(7)根據文件大小查找
-size #find /tmp -size 2M //查找在/tmp 目錄下等於2M的文件 #find /tmp -size +2M //查找在/tmp 目錄下大於2M的文件 #find /tmp -size -2M //查找在/tmp 目錄下小於2M的文件(8)根據文件權限查找文件
-perm #find /tmp -perm 755 //查找在/tmp目錄下權限是755的文件 #find /tmp -perm +222 //表示只要有一類用戶(屬主,屬組,其他)的匹配寫權限就行 #find /tmp -perm -222 //表示必須所有類別用戶都滿足有寫權限(9)-nouser and -nogroup #find / -nogroup –a –nouser //在整個系統中查找既沒有屬主又沒有屬組的文件(這樣的文件通常是很危險的,作為系統工程師的我們應該及時清除掉)【查找完執行的action】 # -print //默認情況下的動作
# -ls //查找到後用ls 顯示出來
# -ok [commend] //查找後執行命令的時候詢問用戶是否要執行
# -exec [commend] //查找後執行命令的時候不詢問用戶,直接執行
查找5天前的文件並執行刪除查找權限為775的文件並執行修改成權限777的文件


(ps:{} 用來替代前面rm/chomd 777 所要修改的文件,\;是將;轉義不讓 -exec去解讀)
本文出自 “momo就是辣麼萌” 博客,請務必保留此出處http://momo462.blog.51cto.com/10138434/1775237
Copyright © Linux教程網 All Rights Reserved