Linux文件查找命令

 

Linux系統文件查找

    使用linux系統難免會忘記文件所在的位置,可以使用以下命令對系統中的文件進行搜索。

locate命令:

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

命令用法:
        locate [OPTION]... PATTERN...
常用選項:
        -b, --basename         至匹配路徑中的基名
        -c, --count            統計出共有多少個符合條件的文件
        -d, --database DBPATH  用 DBPATH 替代默認的數據庫(/var/lib/mlocate/mlocate.db)
        -e, --existing         只顯示當前存在的文件條目
        -L, --follow           當文件存在時跟隨蔓延的符號鏈接 (默認)
        -h, --help             顯示本幫助
        -i, --ignore-case      匹配模式時忽略大小寫區別
        -l, --limit, -n LIMIT  限制為 LIMIT項目的輸出 (或 計數) 
        -m, --mmap             忽略向后兼容性
        -P, --nofollow, -H     當檢查文件時不跟隨蔓延的符號鏈接
        -0, --null             輸出時以 NUL 分隔項目
        -S, --statistics       不搜索項目,顯示有關每個已用數據庫的統計信息
        -q, --quiet            不報告關于讀取數據庫的錯誤消息
        -r, --regexp REGEXP    搜索基本正則表達式 REGEXP 來代替模式
            --regex            模式是擴展正則表達式
        -s, --stdio            忽略向后兼容性
        -V, --version          顯示版本信息
        -w, --wholename        匹配完整路徑名 (默認)

            注:索引構建過程需要遍歷整個根文件系統,極消耗資源

find命令:

    Linux下find命令通過遍歷指定起始路徑下文件系統層級結構完成文件查找,查找速度略慢,但查找結果精確。

命令用法:
        find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]
            查找起始路徑:指定具體搜索目標起始路徑,默認為當前目錄
            查找條件:指定的查找標準,可以根據文件名、大小、類型、從屬關系、權限等標準進行,默認為找出指定路徑下的所有文件;
            處理動作:多符合查找條件的文件作出的操作,例如刪除等操作,默認為輸出至標準輸出;

        查找條件:
            表達式:選項和測試

            測試:結果通常為布爾型(“true”“false”)
                根據文件名查找:
                    -name “pattern”
                    -iname “pattern”:不區分大小寫
                        支持glob風格的通配符
                    -regex pattern:基于正則表達式模式查找文件,匹配是整個路徑,而非其名
                    -user USERNAME:查找屬主指定用戶的所有文件
                    -group GRPNAME:查找屬組指定組的所有文件
                    -uid UID:查找屬主指定的UID的所有文件
                    -gid GIU:查找屬組指定的GID的所有文件
                    -nouser:查找沒有屬主的文件
                    -nogroup:查找沒有屬組的文件

                根據文件的類型查找:
                    -type TYPE:
                        f:普通文件    
                        d:目錄文件
                        l:符號鏈接文件
                        b:塊設備文件
                        c:字符設備文件
                        p:管道文件    
                        s:套接字文件

                組合測試:
                    與:-a,默認組合邏輯
                    或:-o,
                    非:-not,!

                根據文件的大小查找:
                    -size [+|-] #UNIT    
                        常用單位:K,M,G

                根據時間戳查找:
                    以“天”為單位:
                        -atime [+|-]#
                        -mtime
                        -ctime
                    以“分鐘”為單位:
                        -amin        
                        -mmin                        
                        -cmin

                根據權限查找:
                    -perm [/|-]mode
                        mode:精確權限匹配
                        /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關系
                        -mode:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足;9位權限之間存在“與”關系

        處理動作:
            -print:輸出至標準輸出,默認動作
            -ls:類似于對查找到的文件執行“ls -l”命令,輸出文件的形象信息
            -delete:刪除查找到的文件
            -fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中
            -ok COMMAND {} \;:對查找到的每個文件執行由COMMAND表示的命令,每次操作都由用戶進行確認
            -exec COMMAND {} \; :對查找到的每個文件執行由COMMADN表示的命令

        注:find傳遞查找到的文件路徑至后面的命令時,是先查找出所有符合條件的文件路徑,并一次傳遞給后面的命令,但是有些命令不能接受過長的參數,此時命令執行會失敗,另一種方式可規避此問題:
                find | xargs COMMAND

whereis命令:

    whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬于原始代碼,二進制文件,或是幫助文件。

命令用法:
        whereis [-bmsu] [BMS 目錄名 -f ] 文件名
常用選項:
        -b   定位可執行文件。
        -m   定位幫助文件。
        -s   定位源代碼文件。
        -u   搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
        -B   指定搜索可執行文件的路徑。
        -M   指定搜索幫助文件的路徑。
        -S   指定搜索源代碼文件的路徑。

type命令:

    type 命令被用于判斷另外一個命令是否是內置命令

命令用法:
        type [選項] [參數]
常用選項:
        -a 顯示一個名字的所有可能
        -t 判斷一個名字當前是否是alias、keyword、function、builtin、file
        -p 查看一個外部命令的執行路徑
        -P 查看內部命令路徑

        alias 別名
        keyword 關鍵字,Shell保留字
        function 函數,Shell函數
        builtin 內建命令,Shell內建命令
        file 文件,磁盤文件,外部命令
        unfound 沒有找到

which命令:

    which命令的作用是在PATH變量指定的路徑中搜索某個系統命令的位置并且返回第一個搜索結果。也就是說使用which命令就可以看到某個系統命令是否存在以及執行的到底是哪一個位置的命令。

命令用法:
        which [options] [--] programname [...]
常用選項:
        -a   查找全部內容,而非第一個文件
        -n   <文件名長度>  指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。 
        -p   <文件名長度>  與-n參數相同,但此處的<文件名長度>包括了文件的路徑。 
        -w  指定輸出時欄位的寬度。 
        -V  顯示版本信息。

原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/61164

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-11-28 01:00
下一篇 2016-11-28 10:29

相關推薦

  • 夢想走向現實的地方

    曾經羨慕打字快的同學指尖能在鍵盤上優雅地跳舞,于是我有努力練習打字。 曾經羨慕同事能很神奇地把一個交換機的端口關閉,讓那端口下面的人都不能上網,于是我努力學習交換機、路由。 現在我羨慕一個人能管很多服務器的人,于是我開始學習linux了。 努力成為一個也能管很多服務器的人,因為我也想別人叫我運維工程師

    Linux干貨 2016-10-25
  • MySQL/MariaDB數據庫基于SSL實現主從復制

    前言 備份數據庫是生產環境中的首要任務,重中之重,有時候不得不通過網絡進行數據庫的復制,由于MySQL/MariaDB的主從復制是明文傳送的,如果在生產環境中跨網絡傳送,數據的安全性就無法完全保證,為了解決這一問題,我們需要一種安全的方式進行傳送,即基于SSL加密進行數據傳輸。 部署配置 實驗拓撲 實驗環境 系統環境:CentOS6.6 數據庫版本:mari…

    Linux干貨 2015-06-21
  • RPM及YUM工具介紹及使用(下)

    YUM工具 YUM工作原理 YUM工具的出現就是為了解決rpm工具不能夠自動解決軟件包之間的依賴關系這一難題的。它的工作原理大致如下:YUM透過分析RPM的標頭資料,根據各軟件的相關性找出軟件所依賴的軟件列表,然后去下載速度最快的yum倉庫中下載所有相關RPM軟件包,然后完成相應軟件的安裝。同時yum工具和rpm工具一樣,也可以提供對軟件包的查詢,安裝、升級…

    Linux干貨 2016-12-26
  • Linux命令date命令詳解

    在linux環境中,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便,下面是詳細的使用說明和示例 在linux環境中,不管是編程還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。 1.命令格式:date[參數]… [+格式] 2.命…

    2017-07-18
  • 導讀谷歌三大核心技術之一 GoogleFileSystem(一)

    GoogleFileSystem設計構想 為滿足Google數據處理的需求,Google工程師設計并實現了GoogleFileSystem(GFS)。GFS與傳統分布式文件系統類似,也需要滿足高性能、可伸縮性、可靠性以及可用性。與傳統分布式文件系統思路不不同的是: GFS認為組件失效是常態而非意外,GFS由大量廉價設備組成 文件數量異常巨大 絕大部分文件修改…

    Linux干貨 2017-05-07
  • RAID學習總結

    RAID(Redundant Array of Independent Disks): 定義:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列(Redundant Array of Independent Disks),簡稱磁盤陣列。 原理:把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使其性能達到甚至超過價格昂貴,容量巨大的硬盤。 優勢: RAID在容量和管理上…

    Linux干貨 2016-08-22

評論列表(1條)

  • luoweiro
    luoweiro 2016-11-30 23:21

    知識點總結的非常不錯,如果再配一些示例會更好,這樣既能驗證你的掌握程度,又能加深印象。

欧美性久久久久