<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>

          優(yōu)秀的Linux實(shí)用工具:古老的find命令的高級替代

          共 3198字,需瀏覽 7分鐘

           ·

          2020-10-21 07:52


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

          在Linux上,fd是查找命令的一種更簡單的替代方法。它有簡化的語法,使用合理的默認(rèn)值,現(xiàn)在讓我們來看看吧。
          fd 與 find 有什么區(qū)別?
          fd命令并不意味著要取代傳統(tǒng)的find命令,后者在Linux上一直存在。相反,fd試圖以更直接的方式滿足find的大多數(shù)常用用法,而且它通常比find快八到九倍。您可以在項(xiàng)目的GitHub存儲庫頁面上看到它的一些基準(zhǔn)測試。
          fd具有彩色輸出,類似于某些ls模式。它是遞歸的,但默認(rèn)情況下不搜索隱藏的目錄。它了解Git,還將自動(dòng)忽略“.gitignore”文件中的任何模式。
          fd默認(rèn)不區(qū)分大小寫。但是,如果您的搜索模式包含一個(gè)大寫字母,fd將以區(qū)分大小寫的模式運(yùn)行。當(dāng)然,您可以重寫默認(rèn)值,但是在許多情況下,它們對您是有利的。
          安裝fd
          從Ubuntu 19.04(Disco Dingo)開始,您可以通過使用apt-get調(diào)用官方維護(hù)的軟件包直接安裝fd。如果您運(yùn)行的是舊版Ubuntu,請查看GitHub頁面上的安裝說明。
          輸入以下命令:
          linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install fd-find
          在Ubuntu中,命令是fdfind,以避免與另一個(gè)現(xiàn)有的實(shí)用程序發(fā)生名稱沖突。如果希望它是fd,可以設(shè)置一個(gè)別名:
          linuxmi@linuxmi:~/www.linuxmi.com$ alias fd=fdfind
          要使別名保持不變,以便在重新啟動(dòng)后仍然可用,請將其放入“ .bashrc”或“ .bash_aliases”文件中。
          要在Fedora上安裝fd,請鍵入以下命令:
          sudo dfn install fd-find
          在Manjaro上,鍵入以下內(nèi)容:
          sudo pacman -Syu fd
          fd與fdfind
          為避免混淆,我們在Ubuntu測試PC上保留了命令的默認(rèn)名稱fdfind。fd和fdfind是完全相同的命令,如下面的示例所示(如果您要求fdfind顯示其版本,則稱其為“ fd”):
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind --version
          在示例中,我們將使用Ubuntu“ fdfind”。在其他Linux發(fā)行版中,可以鍵入“ fd”而不是“ fdfind”來保存一些擊鍵。
          使用fd進(jìn)行簡單搜索
          如果使用不帶命令行選項(xiàng)的fd,則其行為類似于ls,不同之處在于它默認(rèn)情況下在子目錄中列出文件。
          輸入以下內(nèi)容:
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind
          對于不同的文件類型和目錄,輸出以不同的顏色顯示。
          要查看特定類型的文件,請使用-e(擴(kuò)展名)選項(xiàng)。請注意,您不必在擴(kuò)展名前加句點(diǎn)(.),也不區(qū)分大小寫。
          例如,您可以鍵入以下內(nèi)容:
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -e png
          現(xiàn)在,列出的唯一文件是PNG圖像文件。
          要查找單個(gè)文件,請?jiān)诿钚猩湘I入其名稱,如下所示:
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind linuxmi.png
          找到該文件,并且該文件恰好在子目錄中。我們不必告訴fd進(jìn)行遞歸搜索。
          要在特定目錄中開始搜索,請?jiān)诿钚猩习募窂?。以下命令將在?etc”目錄中開始搜索,并查找文件名中包含“passwd”的文件:
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind passwd /etc
          在這里,我們搜索所有C源代碼文件的名稱中包含“l(fā)inuxmi”的文件:
          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -e c linuxmi
          找到了3個(gè)匹配的文件。
          文件類型和區(qū)分大小寫
          您可以要求fd查找目錄,文件(包括可執(zhí)行文件和空文件)以及符號鏈接。您可以使用-t(type類型)選項(xiàng),然后使用以下字母之一進(jìn)行操作:


          • f: 文件

          • d: 目錄

          • l: 符號鏈接

          • x: 可執(zhí)行文件

          • e: 空文件

          下面尋找一個(gè)名為images的目錄:

          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -td images

          找到匹配項(xiàng),在當(dāng)前目錄下的一個(gè)子目錄中。

          讓我們看看區(qū)分大小寫如何與搜索模式一起工作。我們鍵入以下內(nèi)容首先搜索文件名中包含“l(fā)inux”的文件,然后搜索文件名中包含“Linux”的文件:

          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -tf linux

          linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -tf Linux

          在第一個(gè)命令中,我們使用了小寫搜索模式,這導(dǎo)致fd以不區(qū)分大小寫的方式進(jìn)行操作。這意味著“l(fā)inux”和“Linux”都是有效匹配。

          第二個(gè)命令包含一個(gè)大寫字符,這導(dǎo)致fd以區(qū)分大小寫的方式進(jìn)行操作。這意味著只有“Linux”是一個(gè)有效匹配。

          命令執(zhí)行

          fd命令允許您啟動(dòng)另一個(gè)命令并在找到的每個(gè)文件上執(zhí)行它。

          假設(shè)我們知道源代碼目錄樹中某處有一個(gè)Zip文件。我們可以使用以下命令來查找它,該命令搜索具有ZIP擴(kuò)展名的文件:

          linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip

          使用-x(exec)選項(xiàng),您可以將找到的每個(gè)文件傳遞給另一個(gè)命令,以供其處理。例如,我們可以鍵入以下內(nèi)容來調(diào)用unzip實(shí)用程序以解壓縮我們的ZIP文件(“ {}”是代表找到的文件的占位符):

          linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip -x unzip {}

          這將解壓縮當(dāng)前工作目錄中的文件。如果我們想把它解壓縮到包含ZIP文件的目錄中,我們可以使用以下占位符之一:

          • {}?– 一個(gè)占位符,它將隨著搜索結(jié)果的路徑改變(wp-content/uploads/01.jpg)。

          • {.} – 類似于{},但不使用文件擴(kuò)展名(wp-content/uploads/01)。

          • {/}:將被搜索結(jié)果的基本名稱 (01.jpg)所取代的占位符。

          • {//}:發(fā)現(xiàn)路徑的父目錄(wp-content/uploading)。

          • {/.}:只有基本名稱,沒有擴(kuò)展名(01)。

          為了找到我們的ZIP文件并將其解壓縮到包含它的目錄中,我們可以使用unzip -d(目錄)選項(xiàng),并傳入父目錄占位符({//}):

          linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip -x unzip {} -d {//}

          然后將ZIP文件定位并解壓縮到其父目錄中。

          總結(jié)

          這是對fd命令的簡要回顧,一些用戶可能會發(fā)現(xiàn)fd命令更容易使用,也更快。正如本文前面提到的,fd并不是完全替代find,而是提供簡單的用法、更容易的搜索和更好的性能。在您的武器庫中,fd不需要太多的空間,是一個(gè)很好的工具。


          良許個(gè)人微信


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


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

          → 高手如云交流社群





          本公眾號全部博文已整理成一個(gè)目錄,請?jiān)诠娞柪锘貜?fù)「m」獲??!

          推薦閱讀:

          《最受歡迎的男友職業(yè)排行榜Top10》

          辦公室劃水?早說啊,這事我擅長...

          13 款 Linux 比較實(shí)用的工具


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


          瀏覽 37
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  一本大道久久 | 中文字幕日韩在线观看 | 91青青草视频 | 黄色片一级视频 | 亚洲日韩欧美一区二区 |