一、find命令
find [PATH] [option] [action]
選項與參數:
1.與時間有關的選項:共有 -atime, -ctime , -mtime .以-mtime爲例:
-mtime n : n爲數字,意義爲在n天之前的【一天之內】被改動過內容的文件;
-mtime +n: 列出在n天之前(不含n天本身)被改動過內容的文件檔名;
-mtime -n: 列出在n天之內(含n天本身)被改動過內容的文件檔名;
-newer file: file爲一個存在的文件,列出比file還要新的文件檔名。
範例一:將過去系統上24小時內有改動過內容的文件列出
find / -mtime 0 (0代表的是當期的時間)
範例二:尋找/etc下的文件,如果文件日期比/etc/passwd新就列出來
find /etc -newer /etc/passwd
2.與使用者或組名有關的參數:
-uid n : n爲數字,這個數字是用戶的賬號ID;
-gid n : n爲數字,這個數字是組名的ID;
-user name : name爲使用者賬號名稱;
-group name : name爲組名;
-nouser : 尋找文件的擁有者不在/etc/passwd的人;
-nogroup: 尋找文件的擁有羣組不在/etc/group的人;
範例一:搜尋/home底下屬於tpuser 用戶的文件
find /home -user tpuser
3.與文件權限及名稱有關的參數:
-name filename : 搜尋文件名爲filename的文件;
-size [+-]SIZE : 搜尋比SIZE還要大或小的文件。(c:代表byte,k代表1024bytes);
-type TYPE : 搜尋文件的類型爲TYPE的,
-perm mode : 搜尋文件權限【剛好等於】mode的文件,mode爲類似chmod的屬性值;
-perm -mode:搜尋文件權限【全部囊括mode的權限】的文件;
-perm /mode : 搜尋文件權限【包含任一mode的權限】的文件;
範例一:找出檔名爲passwd這個文件
find / -name passwd
4.額外可進行的動作:
-exec command : command 爲其他指令,-exec後面可再接額外的指令來處理搜尋到的結果
-print :將結果打印到屏幕上,這個動作是預設動作。
範例一:搜尋文件當中含有SGID或SUID或SBIT的屬性的文件,並使用ls -l 列出來
find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
-exec一直到 \; 是關鍵詞,代表find額外動作的開始(-exec)到結束(\;)在這中間的find指令內的額外動作。在本例中就是【ls -l {}】。
二、locate/updatedb
1. loacte [-ir] keyword
選項與參數
-i : 忽略大小寫的差異
-c : 不輸出檔名,僅計算找到的文件數量
-l : 僅輸出幾行,例 -l 5
-S : 輸出locate鎖使用的數據庫文件的相關信息
-r : 後面可接正規表示法的顯示方式;
範例一、找出系統中所有與passwd相關的檔名,且只列出5個
locate -l 5 passwd
2. updatedb
locate使用是有限制的,他是由數據庫來搜尋的,而數據庫的建立是每天執行一次,所以新建立起來的文件,如果還用數據庫更新之前的數據庫搜巡文件,則locate搜尋不到,所以需要更新數據庫,手動更新數據庫的命令就是直接輸入【updatedb】就行了。
三、which命令
1. which [-a] command
這個指令是根據【path】這個環境便令鎖規範的路徑,去搜尋【執行檔】的檔名