再來談一談怎么查找文件辰斋。在Linux下面也有相當(dāng)優(yōu)異的查找命令。通常find不很常用的瘸味,因?yàn)樗俣嚷蹋⊥ǔN覀兌际窍仁褂脀hereis或者是locate來檢查,如果真的找不到了旁仿,才以find來查找藕夫。為什么呢?因?yàn)閣hereis與locate是利用數(shù)據(jù)庫來查找數(shù)據(jù)枯冈,所以相當(dāng)快速毅贮,而且并沒有實(shí)際查詢硬盤,比較節(jié)省時(shí)間霜幼。
引用來自: 鳥哥. “鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇(第三版)嫩码。” Apple Books.
有趣的博客地址 20ID的博客
find語法
find [PATH] [option] [action]
參數(shù):
??與時(shí)間有關(guān)的參數(shù):共有 –atime
罪既、-ctime
與 -mtime
,下面以 -mtime
說明:
-mtime
n :n 為數(shù)字铸题,意義為在 n 天之前的“一天之內(nèi)”被更改過的文件;-mtime
+n :列出在 n 天之前(不含 n 天本身)被更改過的文件名琢感;-mtime
-n :列出在 n 天之內(nèi)(含 n 天本身)被更改過的文件名丢间;-newer
file :file 為一個(gè)存在的文件,列出比 file 還要新的文件名驹针。
范例:
1. 將過去系統(tǒng)上面 24 小時(shí)內(nèi)有改動(dòng)(mtime
)的文件列出
find / -mtime 0
那個(gè) 0 是重點(diǎn)烘挫! 0 代表目前的時(shí)間,所以柬甥,從現(xiàn)在開始到 24 小時(shí)前饮六,有改動(dòng)過內(nèi)容的文件都會(huì)被列出來!
2. 3天前的 24 小時(shí)內(nèi)有改動(dòng)(mtime)的文件列出
find / -mtime 3
3. 尋找 /etc 下面的文件苛蒲,如果文件日期比 /etc/passwd 新就列出
find /etc -newer /etc/passwd
-newer
用在分辨兩個(gè)文件之間的新舊關(guān)系是很有用的卤橄!
4. 找出“4天內(nèi)被改動(dòng)過的文件名”呢?
find /var -mtime -4
5. 那如果是“4 天前的那一天”呢臂外?
find/var -mtime 4
有沒有加上“+, -”差別很大窟扑。
- +4 代表大于等于5 天前的文件名:
find /var -mtime +4
- -4 代表小于等于4 天內(nèi)的文件名:
find /var -mtime -4
- 4 則是代表4~5 那一天的文件名:
find /var -mtime 4
??與用戶或用戶組名有關(guān)的參數(shù):
-uid
n :n 為數(shù)字喇颁,這個(gè)數(shù)字是用戶的賬號(hào) ID,即 UID嚎货,這個(gè) UID 是記錄在/etc/passwd 里面與賬號(hào)名稱對(duì)應(yīng)的數(shù)字橘霎。-gid
n :n 為數(shù)字,這個(gè)數(shù)字是用戶組名的 ID殖属,即 GID姐叁,這個(gè) GID 記錄在/etc/group中~-user
name :name 為用戶賬號(hào)名稱。例如 dmtsai忱辅。-group
name:name 為用戶組名七蜘,例如 users。-nouser
:尋找文件的所有者不存在 /etc/passwd 的人墙懂。-nogroup
:尋找文件的所有用戶組不存在于 /etc/group中的文件。當(dāng)你自行安裝軟件時(shí)扮念,很可能該軟件的屬性當(dāng)中并沒有文件所有者损搬,這是可能的,在這個(gè)時(shí)候柜与,就可以使用 -nouser 與 -nogroup 查找巧勤。
范例:
1. 查找 /home 目錄下 屬于 vbird
的文件
find /home -user vbird
2. 查找 /home 目錄下 系統(tǒng)中不屬于任何人的文件
find /home -nouser
??與文件權(quán)限昵稱有關(guān)的參數(shù):
-name
filename:查找文件名為 filename 的文件。-size
[+-]SIZE:查找比 SIZE 還要大(+)或信啊(-)的文件颅悉。這個(gè) SIZE 的規(guī)格有:c: 代表 byte,k: 代表 1024bytes迁匠。所以剩瓶,要找比 50KB還要大的文件,就是“ -size +50k ”城丧。-type
TYPE :查找文件的類型為 TYPE 的延曙,類型主要有:一般正規(guī)文件(f)、設(shè)備文件(b, c)亡哄、目錄(d)枝缔、連接文件(l)、socket(s)蚊惯、及 FIFO(p) 等屬性愿卸。-perm
mode :查找文件權(quán)限“剛好等于”mode 的文件,這個(gè) mode 為類似 chmod的屬性值截型,舉例來說趴荸,-rwsr-xr-x 的屬性為 4755 。-perm
-mode :查找文件權(quán)限“必須要全部包括 mode 的權(quán)限”的文件菠劝,舉例來說赊舶,我們要查找 -rwxr--r--睁搭,即 0744 的文件,使用 -perm -0744笼平,當(dāng)一個(gè)文件的權(quán)限為 -rwsr-xr-x园骆,即 4755 […]
范例:
1. 查找 /home 目錄下 文件名為 government.txt
find /home -name government.txt
2. 找出 /var 目錄下文件類型為 Socket
的文件名有哪些
find /var -type s
3. 要找出那些怪異的文件寓调,例如 socket
與 FIFO
文件,可以用
find /var -type p # 或 -type s 來找晌涕!
4. 查找文件當(dāng)中含有 SGID
或 SUID
或 SBIT
的屬性
find / -perm +7000
所謂的 7000 就是 ---s--s--t余黎,那么只要含有 s 或 t 的就列出载萌,所以當(dāng)然要使用 +7000扭仁,使用 -7000 表示要含有 ---s--s--t 的所有三個(gè)權(quán)限乖坠,因此,就是 +7000 仰迁。
注
5. find 支持通配符轩勘,查找文件名包含.log
的文件
find / -name "*.log*"