<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    八:別玩捉迷藏了!搜索命令

    對于任何一個系統(tǒng)而言,文件的搜索是必不可少的,趕緊看一看Linux下“Ctrl+F”功能怎么使用!

    簡單的快速通過文件名查找:locate
    示例:locate 文件名,默認模糊匹配在數(shù)據(jù)文件中包含指定文件名的記錄。locate命令一個最大的特點在于搜索的速度非常快。因為locate命令不是對本地磁盤上的文件直接進行搜索,而是搜索一個數(shù)據(jù)文件的內(nèi)容(當然了,這個數(shù)據(jù)文件需要包含本地磁盤的文件信息)。這個文件通常位于/var/lib/mlocate(Linux版本之間可能會有細微的不同),看到這里你可能會想,新增的文件是不是會同步的被寫入到這個數(shù)據(jù)文件中呢,答案是不一定,這要看系統(tǒng)刷新數(shù)據(jù)文件的頻度,一般來說是一天,但是你也可以手動強制通過updatedb命令來刷新數(shù)據(jù)文件的內(nèi)容(該命令略占系統(tǒng)資源,不要頻繁使用)。

    不過呢,有些時候,我們搜索一些明明存在的文件時卻搜索不到,使用了updatedb命令之后也沒有效果。
    做一個演示,在系統(tǒng)“/tmp”目錄下新建一個文件,名為12345678910.test,這個文件名我認為已經(jīng)夠特殊了。

    現(xiàn)在使用locate命令來查找這個文件當然找不到,使用了updatedb之后呢?答案是依然找不到。。這就讓人納悶了,這命令好不好用,為什么找不到,我本人新建的文件,明明擺在那里。
    通過不斷的man,你會定位到一個叫“/etc/updatedb.conf”的文件,打開看一下

    其中我們看到了“/tmp”目錄,這有什么聯(lián)系呢?

    當你閱讀完幫助文檔之后你就會明白,數(shù)據(jù)文件的加載是有一定的規(guī)則的,這些個規(guī)則就在“/etc/updatedb.conf”文件中配置,我們會看到,這個配置文件中定義了哪些文件系統(tǒng)需要排除掃描,哪些文件名需要排除掃描,以及哪些目錄需要排除掃描。而上圖中,“/tmp”目錄被列入排除掃描的路徑,所以,我們在“/tmp”目錄下做演示,出現(xiàn)搜索不到的問題,就沒有任何問題。
    locate命令能夠快速的定位到文件,開銷小,效率高,但是遺憾的是,他只能根據(jù)文件名來定位文件,而且使用上還有一些不方便(效率帶來的代價),或許要刷新數(shù)據(jù)文件,修改配置文件。

    強大的文件搜索命令:find
    find命令非常強大,選項非常多,以至于你能想象到的搜索功能他幾乎都能實現(xiàn)。下面列舉幾個常用的示例。

    示例1:通過文件名匹配
    find [目錄] -name 文件名,目錄是可選項,如果不設置,則從根目錄開始匹配,但是強烈建議縮小查找的范圍,節(jié)約系統(tǒng)開銷,如果有需要,還可以添加“-i”選項忽略大小寫
    find ~ -name demoFile,查找家目錄下名為demoFile的文件
    說到通過文件名來匹配,那么通配符是一定要知道的,find命令結合通配符能夠完成日常很多查詢工作。

    常用通配符:
    *注意,使用通配符的時候需要給匹配表達式添加引號引起
    *:匹配任意多個字符(包括零個或一個)
    示例:find ~ -name “a*”,查找家目錄下所有以a開頭的文件
    ?:匹配任意一個字符(不包括零個)
    示例:find ~ -name “a???”,查找家目錄下所有以a開頭,文件名長度為四個字符的文件
    [characters]:匹配任意一個屬于字符集中的字符
    示例:find ~ -name “[abc]*”.txt,查找只能包含a或b或c任意一個或多個任意組合,并且以”.txt“結尾的文件
    [!characters]:匹配任意一個不是字符集中的字符
    同上,取反

    常用字符類:
    匹配一個字符類,[[:class:]]:匹配任意一個屬于指定字符類中的字符
    [:alnum:]:匹配任意一個字母或數(shù)字
    示例:find ~ -name “[[:alnum:]]*.cfg”,查找家目錄下含有字母或者數(shù)字,并且以”.cfg”結尾的文件
    下列字符類使用方式相同
    [:alpha:]:匹配任意一個字母
    [:digit:]:匹配任意一個數(shù)字
    [:lower:]:匹配任意一個小寫字母
    [:upper]:匹配任意一個大寫字母

    示例2:通過所屬用戶來匹配
    有些時候,在一些公共目錄,有很多其他用戶創(chuàng)建的文件,我們需要把他們過濾掉
    指定所屬用戶:-user 用戶名
    示例:find /tmp -user root -name “a*”,查找tmp目錄下所有以a開頭并且屬于root用戶的文件
    順便一提,有些文件沒有所屬用戶,可以添加-nouser進行篩選。(沒有所有者的文件,一般認為是垃圾文件,但是內(nèi)核產(chǎn)生的文件不會有所有者,比如內(nèi)存文件,或者是外來文件,一般是外接設備帶來的數(shù)據(jù),除了這兩種情況,其他情況都視為垃圾文件)

    示例3:通多特定時間來匹配
    -atime 文件訪問時間 +-10(默認單位”天“)
    -ctime 改變文件屬性 +-10
    -mtime 修改文件內(nèi)容 +-10
    示例:
    find ~-mtime +10 搜索十天之前,修改過內(nèi)容的文件
    find ~ -ctime -10 搜索十天之內(nèi),修改過文件屬性
    find ~ -atime 10 過去的第十天,被訪問過的文件

    示例4:通過文件大小來匹配
    -size 25k
    find /root -size 25k 搜索剛好是25k的文件(但是文件大小一般不會這么巧是25k,嘗試搜索”+大于“或者”-小于“k)

    示例5:組合匹配
    也就是多條件查詢
    -a:and
    find ~ -size +25k -a -size -75k,查找大小介于25~75k的文件
    -o:or
    find /root -size +25k -o -size -10k,只需要大于25k或者小于10k的文件
    之前提到過的種種選項,都可以組合使用,比如就寫一個長一點的
    find ~ -name “a*” -user root -a -size -5k -a -atime 1,查找以a開頭,屬于root用戶,并且要小于5k,還需要在一天之內(nèi)被訪問過的文件。

    命令交接
    -exec XXX {} \; 固定格式 ,XXX代表需要的命令,但是要注意,不是所有命令都適用
    find ~ -size +25k -o -size -10k -exec ls -l {} \;
    將查詢的結果通過一個指定的命令進行處理
    上面記錄的僅僅是選項中很小的一部分,更多需求還需要查閱幫助手冊或者搜索引擎。

    posted on 2015-06-21 14:47 都較瘦 閱讀(131) 評論(0)  編輯  收藏 所屬分類: Linux

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統(tǒng)計

    公告

    博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 永久黄网站色视频免费| 亚洲人成网77777色在线播放| 亚洲成av人在线观看网站| 亚洲国产精品人人做人人爽| 日本不卡免费新一区二区三区| 亚洲国产成人久久99精品| 午夜国产羞羞视频免费网站| 久久精品国产影库免费看| 成年人视频在线观看免费| 一级毛片免费不卡直观看| 亚洲综合色丁香麻豆| 91精品国产免费久久国语蜜臀| 亚洲中文无码亚洲人成影院| 久久影院亚洲一区| 久久久精品午夜免费不卡| 亚洲人成无码网站在线观看| 亚洲免费观看视频| 国产又粗又长又硬免费视频| 免费一级毛片在线播放视频免费观看永久| 久久综合图区亚洲综合图区| 国内自产少妇自拍区免费| 99久热只有精品视频免费看| 激情小说亚洲图片| 亚洲1区1区3区4区产品乱码芒果| 亚洲性在线看高清h片| 毛片a级毛片免费观看免下载| 13小箩利洗澡无码视频网站免费| 亚洲精品视频免费看| 国产成人麻豆亚洲综合无码精品| 成人A级毛片免费观看AV网站| 香蕉视频在线观看免费| 亚洲乱码一二三四五六区| 伊人久久大香线蕉亚洲| 免费看小12萝裸体视频国产| 思思re热免费精品视频66| 国产真人无码作爱免费视频| 美女又黄又免费的视频| 亚洲人成网站999久久久综合| 久久亚洲日韩看片无码| 久久亚洲精品中文字幕无码| 亚洲中文字幕久久精品无码喷水|