首頁>Club>
8
回覆列表
  • 1 # 莫米粒兒


    CentOS定位、查詢檔案的命令

    定位、查詢檔案的命令

    which 從path中找出檔案的位置 find 找出所有符合要求的檔案

    whereis 找出特定程式的路徑 locate   從索引中找出檔案位置

    1.which命令

    語法:

    which command

    說明:

    which命令的作用是,在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。在找到第一個符合條件的程式檔案時,就立刻停止搜尋,省略其餘未搜尋目錄。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

    例項:

    [root@localhost /]# which ls

    alias ls='ls --color=auto'

    /bin/ls

    [root@localhost /]# which nginx

    /usr/bin/nginx

    2.whereis命令

    語法:

    whereis [option] name

    說明:

    找出特定程式的可執行檔案、原始碼檔案以及manpage的路徑。你所提供的name會被先除去前置的路徑以及任何.ext形式的副檔名。

    whereis 只會在標準的Linux目錄中進行搜尋。

    常用選項

    -b

    只搜尋可執行檔案。

    -m

    只搜尋manpage。

    -s

    只搜尋原始碼檔案。

    -B directory

    更改或限定搜尋可執行的檔案的目錄。

    -M directory

    更改或限定搜尋manpage的目錄。

    -S directory

    更改或限定搜尋原始碼檔案的目錄。

    例項:

    [root@localhost /]# whereis grep

    grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz

    [root@localhost /]# whereis -b nginx

    nginx: /usr/bin/nginx /usr/local/nginx

    3.find命令

    語法:

    find paths expression [action]

    說明:

    以paths為搜尋起點逐層往下找出每一個符合expression條件的檔案,並對該檔案執行action所代表的動作。expression是搜尋條件,它由一個代表匹配專案的選項以及一個代表匹配模式的引數構成。

    $ find <指定目錄> <指定條件> <指定動作>

      - <指定目錄>: 所要搜尋的目錄及其所有子目錄。預設為當前目錄。

      - <指定條件>: 所要搜尋的檔案的特徵。

      - <指定動作>: 對搜尋結果進行特定的處理。

    如果什麼引數也不加,find預設搜尋當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有檔案),將它們全都顯示在螢幕上。

    action是處理動作,它有一個代表“處理方式”的選項以及一個操作引數構成。若不指定action,則預設動作是顯示出檔名。

    常用的搜尋條件

    -name pattern 

    -path pattern  

    -lname pattern

    找出名稱、路徑名稱或符號連結的目標匹配pattern模式的檔案。pattern可以包含shell的檔名萬用字元,路徑是相對於搜尋起點的。

    常見處理動作

    -print

    顯示出檔案的相對路徑(相對於搜尋起點)。

    -exec cmd /;

    執行指定的shell命令。若cmd含有任何shell特殊字元,則他們之前都必須加上/符號,以免shell立刻執行他們。在cmd裡,可以用”{}”符號(包括雙引號)表示find所找出的檔案。

    1.按照檔名查詢

        (1)find / -name httpd.conf  #在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢

        (2)find /etc -name httpd.conf  #在/etc目錄下檔案httpd.conf

        (3)find /etc -name '*srm*'  #使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘srm’的檔案

        (4)find . -name 'srm*'   #表示當前目錄下查詢檔名開頭是字串‘srm’的檔案

        2.按照檔案特徵查詢     

        (1)find / -amin -10   # 查詢在系統中最後10分鐘訪問的檔案(access time)

        (2)find / -atime -2   # 查詢在系統中最後48小時訪問的檔案

        (3)find / -empty   # 查詢在系統中為空的檔案或者資料夾

        (4)find / -group cat   # 查詢在系統中屬於 group為cat的檔案

        (5)find / -mmin -5   # 查詢在系統中最後5分鐘裡修改過的檔案(modify time)

        (6)find / -mtime -1   #查詢在系統中最後24小時裡修改過的檔案

        (7)find / -user fred   #查詢在系統中屬於fred這個使用者的檔案

        (8)find / -size +10000c  #查找出大於10000000位元組的檔案(c:位元組,w:雙字,k:KB,M:MB,G:GB)

        (9)find / -size -1000k   #查找出小於1000KB的檔案

        3.使用混合查詢方式查詢檔案

        引數有: !,-and(-a),-or(-o)。

        (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目錄下查詢大於10000位元組並在最後2分鐘內修改的檔案

             (2)find / -user fred -or -user george   #在/目錄下查詢使用者是fred或者george的檔案檔案

             (3)find /tmp ! -user panda  #在/tmp目錄中查詢所有不屬於panda使用者的檔案

    例項:

    [root@localhost /]# find / -name nginx.conf

    /www/server/nginx/conf/nginx.conf

    /www/server/nginx/src/conf/nginx.conf

    [root@localhost /]# find /www/server/nginx/conf -name nginx.conf

    /www/server/nginx/conf/nginx.conf

    4.locate命令

    語法:locate patterns

    說明:

    locate命令其實是“find -name”的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。

    例項:

    [root@localhost /]# locate nginx.conf

    /www/server/nginx/conf/nginx.conf

    /www/server/nginx/conf/nginx.conf.default

    /www/server/nginx/src/conf/nginx.conf

    5.type命令

    說明:

    type命令其實不能算查詢命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進位制檔案提供的。如果一個命令是外部命令,那麼使用-p引數,會顯示該命令的路徑,相當於which命令。

    例項:

    [root@localhost /]# type cd

    cd is a shell builtin

    [root@localhost /]# type ls

    ls is aliased to `ls --color=auto'

    [root@localhost /]# type grep

    grep is /bin/grep

    cd是shell的自帶命令(build-in)

    grep是一個外部命令,並顯示該命令的路徑。

    [root@localhost /]# type -p grep

    /bin/grep

    加上-p引數後,就相當於which命令。

  • 中秋節和大豐收的關聯?
  • 九大行星一天時間?