linux下目錄與文件的查找方法

一、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】這個環境便令鎖規範的路徑,去搜尋【執行檔】的檔名











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章