linux下命令與文件的查詢

            

                                          Linux命令與文件的查詢


1  腳本文件名的查詢

  • which(尋找“執行文件“)

             參數-a  :將所有由path目錄中可以找到的命令均列出,而不止第一個被找到的目錄名稱

  • 以 ifconfig爲例

wKiom1dBRguTUIvQAAAq3QXUZGI867.png 可以找到正確的文件執行名

  • 以which 本身爲例


    wKioL1dBRezhwXjGAAAjemiLNsw106.png

    alias--->命令別名,輸入which會等於後面接的那串命令

  • 以常用的cd指令爲例

wKioL1dBRm-g8EGCAAAiGuP5ng8950.png

爲什麼會找不到呢?


原因在於which的查找機制,which是默認查找PATH內所規範的目錄,cd是bash內置的命令當然找不到啦,這裏我們使用type指令

wKioL1dBR2mRU0fSAAAbsBZSaz8805.png

   

可以看出cd是一個shell builtin 即就內置命令

2  文件名的查找

         通常而言我們不常使用find指令,由於find指令需要在內存中查找,速度會很慢,所以我們會先使用whereislocate來檢查,如果找不到再使用findwhereislocate都是使用數據庫來查找,所以速度很快


  • whereis(尋找特定文件)

參數:-b  :只查找二進制格式文件

          -m :只找在說明文件manual路徑下的文件

          -s   :只找source源文件

          -u   :查找不再上述三個選項中的其他文件

  • 以ifconfig指令爲例

wKioL1dBSEizGYrKAAAgf6iBNWQ867.png


    只找出跟passwd有關的是”說明文件“

wKiom1dBR4vRbxxXAAAWi3CWvkU515.png


  • locate

locate指令使用非常簡單,直接後面輸入”文件部分名稱“即可

參數:-i    忽略大小寫的差異

          -r   後面可接正則表達式的顯示方式

  • 以passwd爲例

   wKiom1dBR7vBZx97AABlGnY-V6k446.png

只要含有 passwd在其中,就會被顯示出來。

使用限制:由於locate查找數據是由 已創建的數據庫庫/var/lib/mlocata/所查到的,數據庫信息需要更新,所以當我們新建一個文件夾後查找這個文件

由於數據庫並未更新,所以會查不到,我們可以採用手動更新數據庫的方式。---->直接輸入updatesb





  • find指令

這是一個很重要的指令,直接在內存中查找。

時間參數:以-mtime爲例

     -mtime n  :n爲數字,意義爲在n天之前的”一天之內“被更改過的文件

     -mtime +n   :列出在n天之前(不含n天本身)被更改的文件名

     -mtime  -n     :列出在n天之內(含n天本身)被更改過的文件名

     -newer  file :file爲一個存在的文件,列出比file還要新的文件名

圖示爲:

以find /var -mtime4 爲例時間軸爲:

wKioL1dBSOKRm_-vAAAWAc4AsUI565.png


與用戶或用戶組有關的參數

     -uid  n:這個數字是用戶的賬號ID,記錄在/etc/passwd中與賬號名稱對應的數字

     -gid  n:n爲用戶組名的ID

     -username  :name爲用戶賬號名稱 如root 

     -groupname:name爲用戶組名

     -nouser  :尋找文件所有者不存在/etc/passwd的人

     -nogroup:尋找文件的所用戶組不存在於etc/group中的文件

  • 查找 /home下屬於dz的文件:

wKiom1dBSCOR41YDAAA7X424nx8151.png

   查找根目錄中不屬於任何人的文件

wKioL1dBSTChp2B-AAAMUBfiCi8782.png

 -name filename 查找文件名爲 1 的文件

wKioL1dBSW6hMWEwAAAeW-nAMIQ355.png


-name [+ -]size  查找比size還要大的文件  size規格:c:代表byte,k代表1024bytes 要找

以找比50kb小的文件爲例

wKiom1dBSKfAl5tJAAA1YUaR5VU256.png

-type type:查找類型爲type的文件

以查找正規文件爲例(f)

wKiom1dBSMOznmyDAAAid_dc30c239.png

 文件權限參數

-pern mode :查找文件類型剛好等於 mode的文件

-pern -mode:查找文件權限  必須要全部包含mode權限的文件

-pern +mode  查找文件權限 包含任意mode權限的文件

            比如說我們查找-rwx r-x r-x 即 -pern+755時候也會包括一個-rw- --- ---文件存在,因爲他    包含了-rw屬性

查找權限爲777的文件

wKioL1dBSejD-L-zAAAc79-FQuE768.png


權限爲包含任意一個777以內權限的文件

wKioL1dBSiviSAOhAAApohqds-s981.png

權限爲 必須包含777所有權限的文件

wKioL1dBSkyB-t-UAAAkrkfAcd0792.png


其他操作:


-exec command:commad 爲其他命令,-exec後面可接其他命令來處理查找的結果


如 將權限包含7000其中之一的文件 使用ls -l列出來

wKioL1dBSmnwJuPLAACS4hJOyCQ393.png

以find  / perm +7000 -exec  ls -l  {}  \;  指令爲例

wKioL1dBSo2DNzauAAAr403so7Y303.png




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