Linux文件查找之find命令

前言:   

    Linux文件種類繁多,難免在維護Linux中會忘記文件的路徑。所有在維護Linux中學好查找命令是非常必要的。

    Linux查找命令有很多,比如 whereis,type,which,locate,find(重點)。

        1、whereis

                whereis命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

                whereis命令的使用實例:

QQ截圖20150608101211.png

       2、type

                type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是有shell外部的獨立二級制文件提供的。如果一個命令是外部命令,那么使用-P參數,會顯示該命令的路徑,相當于which命令。

                type命令的使用實例:

QQ圖片20150608130234.png

       3、which

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

常用參數:--skip-alias:去除別名。

                which命令的使用實例:

QQ截圖20150608110929.png

        這里cd命令是內建命令,因而無法查到。

        

        4、locate

                locate查找為非實時查找,也成模糊查找。locate依賴于索引,而索引構建時在系統空閑時由系統自動進行(每天任務);手動進行使用updatedb;locate命令的優勢是查找速度快,劣勢為非精準查找。

                locate命令使用實例:
                    locate的參數:
                        -n #:限定顯示#行
                        -i:不區分大小寫,默認區分
                        -r FILE_NAME:顯示以FILE_NAME為結尾的行

QQ截圖20150608144729.png

QQ截圖20150608153537.png

            關于locate的其他參數使用,這里就不做詳細講解了,還請朋友們自行Google。

        5、find(重點)

                find命令是遍歷所有文件進行條件匹配,查找速度慢但結果精確,即為精準查找。也是我們在生產環境中使用最多,最強大的文件查找工具。

           find的使用格式:
                find [option]... [查找路徑] [查找條件] [處理動作]
                    查找路徑:默認為當前目錄
                    查找條件:默認為指定路徑下的所有文件
                    處理動作:默認為顯示至屏幕

        查找條件:

            -name “文件名稱”:支持使用文件通配(globbing)字符
                     *:任意長度任意字符
                    ?:任意單個字符
                    [ ]:指定范圍內的單個字符
            -iname “文件名稱”:查找時忽略字符大小寫
            -user USERNAME:根據屬主查找
            -group GRPNAME:根據文件屬組查找
            -uid UID
            -gid GID
            -nouser:沒有屬主的文件
            -nogroup:沒有屬組的文件

        組合條件查找:

            與:-a,同時滿足
            或:-o,滿足一個即可
            非:-not,!,條件取反
                注:-not A -a -not B = -not\(A -o B\)
                       -not A -o -not B = -not\(A -a B\)

        -type TYPE:根據文件類型查找

             f:普通文件
                d:目錄文件
                l:符號鏈接
                b:塊設備
                s:套接字文件
                p:命令管道

        -size [+|-]#UNIT(單位)

              常用單位:k,M,G
                #UNIT:#-1<x<#
                -#UNIT:x<=#-1
                +#UNIT:x>#

        根據時間戳查找:

            以“天”為單位
                -atime(訪問時間) [+|-]#
                    +#:(#+1)天之前被訪問過的文件 x>=#+1
                    -#:x<#
                    x:#<=x<#+1
                        例如:+2:最近一刻訪問文件的時間是2天以前
                                  -2:訪問文件的時間是當前時間之2天之內
                                    2:訪問文件的時間大于2天小于3天
                -mtime(修改時間):
                -ctime(改變時間):
                用法同atime。

        以“分鐘”為單位 

              -amin
              -mmin
              -cmin

        根據文件權限查找:

               -perm [+|-]MODE
                    MODE:與MODE精確匹配
                    +MODE:任何一類用戶的取消只要包含對其指定的任何一位權限即可
                    -MODE:每一類用戶指定的檢查權限都匹配;

        處理動作:           

    -print:默認處理動作,顯示
                -ls:類似于ls -l顯示詳細信息
                -exec COMMAND {} \;
                -ok COMMAND {} \;
                    注:一次性查找符合條件的所有文件,并一同傳遞給-exec或-ok后面指定的命令;但有些命令不能接受過長的參數;此時使用另一種方式
                    find  | xargs COMMAND

    實戰演示:

1、查找/var/目錄屬主為root且屬組為mail的所有文件;

QQ截圖20150608210555.png

2、查找/usr目錄下不屬于root、bin或hadoop的所有文件

QQ截圖20150608211042.png

3、查找/etc/目錄下最近一周內其內容修改多的,且不屬于root或hadoop的文件;

QQ截圖20150608211809.png

4、查找當前系統上沒有屬主或屬組,且最近1個月內曾被訪問過的文件;

QQ截圖20150608212624.png

5、查找/etc/目錄下大于1M且類型為普通文件的所有文件;

QQ截圖20150608212822.png

6、查找/etc/目錄所有用戶都沒有寫權限的文件

QQ截圖20150608213127.png

7、查找/etc/目錄下至少有一類用戶沒有寫權限;

QQ截圖20150608214309.png

8、查找/etc/init.d/目錄下,所有用戶都有執行權限且其他用戶有寫權限的文件

QQ截圖20150608214646.png

原創文章,作者:水蒸氣,如若轉載,請注明出處:http://www.www58058.com/4173

(0)
水蒸氣水蒸氣
上一篇 2015-06-15
下一篇 2015-06-16

相關推薦

  • 設計模式原則詳解

        我們在應用程序開發中,一般要求盡量兩做到可維護性和可復用性。       應用程序的復用可以提高應用程序的開發效率和質量,節約開發成本,恰當的復用還可以改善系統的可維護性。而在面向對象的設計里面,可維護性復用都是以面向對象設計原則為基礎的,這些設計原則首先都是復用的原則,遵循這些設…

    Linux干貨 2015-04-07
  • Linux的哲學思想

    Linux的哲學思想 一切皆文件 在linux中所有的一切,都是可以通過ls進行查詢的到的,甚至可以說ll查看詳細信息時表現形式為文件,所有的設備,所有的文件不論后綴,只是一個單純文件通過vim可以編輯一切 單一目的的小程序,組合小程序完成復雜任務 在linux中,每一個命令都是對應一個功能,通過不同的參數來完成不同的要求,通過繁多的小的命令來完成大型的要求…

    Linux干貨 2016-10-30
  • Linux第六周學習博客作業

    對第六周學習的內容進行總結

    2018-01-14
  • 系統啟動和內核管理-1

    1、Linux 組成 kernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能等等 rootfs: 程序和glibc 內核設計流派: 單內核(monolithic kernel)-Linux-把所有功能集成于同一個程序 微內核(micro kernel)-Windows, Solaris-每種功能使用一個單獨子系統實現 1)、Linux內核…

    Linux干貨 2016-09-13
  • 文件管理

    compress:壓縮命令 -d:解壓縮(=uncompress) -c:結果輸出到標準輸出,不刪除原文件 -v:顯示詳情 zcat:不解壓文件查看內容   gzip:壓縮命令 -d:解壓縮 -c:結果輸出到標準輸出,不刪除原文件 -#:1-9代表壓縮比,默認為6 zcat:不解壓文件查看內容   bzip2:壓縮命令 -k:保留原文件 …

    Linux干貨 2016-08-18
  • N25_第二周作業_leon

    第二周博客作業_leon 1.       Linux上的文件管理類命令有哪些?其常用的使用方法及其相關示例演示 常用文件管理類命令有: mkdir、touch、rmdir、cp、rm、mv   mkdir—-創建目錄 -m  直接設置權限(非默認權限) -v&nbs…

    Linux干貨 2016-12-23
欧美性久久久久