<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          厲害了!除了find命令,還有這么多文件查找命令,高手必備!

          共 1580字,需瀏覽 4分鐘

           ·

          2020-06-16 23:22

          de1b449578061b09d955fb23e1e08037.webp73939f350a5578e1db217aafa24627aa.webp


          ??當(dāng)當(dāng)年中慶,又有羊毛可以薅了?。?!?


          點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。

          大家好,我是良許。

          在系統(tǒng)里查找文件,是所有工程師都必備的技能(不管你用的是 Windows 、Linux、還是 MacOS 系統(tǒng))。對(duì)于 Linux 操作系統(tǒng),單單一個(gè) find 命令就可以完成非常多的搜索工作。

          但是,文件搜索命令遠(yuǎn)不止一個(gè) find 命令,還有很多。本文就對(duì) Linux 下文件搜索命令進(jìn)行一個(gè)科普,讓你能夠在短時(shí)間內(nèi)找到自己需要的文件。

          ??1. find??


          find 命令應(yīng)該是最經(jīng)典的命令了,談到搜索工具第一個(gè)想到的肯定是 find 命令。但是,find 命令非常強(qiáng)大,想要把它的功能都介紹一遍,恐怕要寫(xiě)好幾篇文章。

          所以,這里就偷個(gè)懶,介紹最基本的,根據(jù)文件名查找文件的方法。假如我們想搜索當(dāng)前目錄(及其子目錄)下所有 .sh 文件,可以這樣搜索:

          c2c818e98629b8a95b759dd1a8650e3b.webp

          ??2. locate??


          locate 是另外一個(gè)根據(jù)文件名來(lái)搜索文件的命令。區(qū)別于 find 命令,locate 命令無(wú)需指定路徑,直接搜索即可。

          這個(gè)命令不是直接去系統(tǒng)的各個(gè)角落搜索文件,而是在一個(gè)叫 mlocate.db 的數(shù)據(jù)庫(kù)下搜索。這個(gè)數(shù)據(jù)庫(kù)位于 /var/lib/mlocate/mlocate.db ,它包含了系統(tǒng)里所有文件的索引,并且會(huì)在每天早上的時(shí)候由 cron 工具自動(dòng)更新一次。

          正因?yàn)槿绱?,locate 的搜索速度遠(yuǎn)快于 find 命令,因?yàn)樗苯釉跀?shù)據(jù)庫(kù)里檢索,速度自然更快。

          locate 命令在找到文件之后,將直接顯示該文件的絕對(duì)路徑,比如:

          0e7aa23abca25df663603c02eaa653c4.webp

          但是 locate 命令有個(gè)弊端,它無(wú)法搜索當(dāng)天所創(chuàng)建的文件,因?yàn)樗臄?shù)據(jù)庫(kù)一天只在早上更新一次。比如我現(xiàn)在創(chuàng)建一個(gè)新文件,locate 沒(méi)辦法搜索到:

          6008b997ee74e6c2d02f69a0aac22175.webp

          為了解決這個(gè)問(wèn)題,我們可以使用 updatedb 命令手動(dòng)去更新它的數(shù)據(jù)庫(kù):

          $?sudo?updadb

          然后,我們就可以搜索到新文件了。

          3d9c9e417dd6dd649e5ae5df276e601c.webp

          ??3. which??


          which 命令主要用來(lái)查找可執(zhí)行文件的位置,它搜索的位置指定在 $PATH$MANPATH 環(huán)境變量下的值,默認(rèn)情況下,which 命令將顯示可執(zhí)行文件的第一個(gè)存儲(chǔ)位置:

          8b347d230572c52c5f33bdfe0d87f620.webp

          如果某個(gè)可執(zhí)行文件存儲(chǔ)在多個(gè)位置,可以使用 -a 選項(xiàng)列出所有的位置。

          如果你想一次性查找多個(gè)文件,可以直接跟在 which 命令后面即可。

          b8b69063982a9d9789c8410763dce233.webp

          ??4. whereis??


          whereis 命令會(huì)在系統(tǒng)默認(rèn)安裝目錄(一般是有root權(quán)限時(shí)默認(rèn)安裝的軟件)查找二進(jìn)制文件、源碼、文檔中包含給定查詢關(guān)鍵詞的文件。(默認(rèn)目錄有 /bin, /sbin, /usr/bin, /usr/lib, /usr/local/man等類似路徑)。

          一般包含以下三部分內(nèi)容:

          • 二進(jìn)制文件的路徑

          • 二進(jìn)制文件的源碼路徑

          • 對(duì)應(yīng) man 文件的路徑

          比如我們現(xiàn)在搜索 ls 命令:

          c595627fe51a044fabc2e7fc246db53c.webp

          我們可以使用 -b 選項(xiàng)來(lái)只搜索可執(zhí)行文件所在位置,使用 -B 選項(xiàng)指定搜索位置,使用 -f 選項(xiàng)列出文件的信息。

          79cee32bcdc35f7e4c10972b7831aa09.webp

          同樣地,我們可以使用 -s 限定只搜索源碼路徑,使用 -m 搜索 man page 路徑,使用 -s 指定搜索源代碼文件的路徑,使用 -M 指定搜索幫助文件的路徑。


          良許個(gè)人微信


          添加良許個(gè)人微信即送3套程序員必讀資料


          → 精選技術(shù)資料共享

          → 高手如云交流社群





          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲??!

          推薦閱讀:

          Leetcode驚現(xiàn)馬化騰每天刷題?為啥大佬都這么努力!

          玩轉(zhuǎn) Terminal 終端:入門(mén)指南及進(jìn)階技巧

          深度好文:Linux系統(tǒng)內(nèi)存知識(shí)


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹(shù)莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取?。?/span>


          瀏覽 56
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色激情综合网 | 韩国精品三级 | 青青草在线视频免费播放 | 免费日逼电影 | 成人性爱视频网址导航 |