1. 程式人生 > >linux下目錄與檔案的查詢方法

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