偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux 中的模糊文件搜索

系統(tǒng) Linux
像 fzf 和 fzy 這樣的現(xiàn)代工具將 Linux 終端中的文件搜索提升到了一個(gè)新的水平。

在 Linux 命令行中,如何 搜索文件?你可以使用 find 命令。這是標(biāo)準(zhǔn)答案,沒(méi)有問(wèn)題。

通常,你鍵入帶有搜索參數(shù)的命令,按回車鍵,然后它會(huì)顯示搜索結(jié)果。

你可以通過(guò)模糊搜索來(lái)提升終端中的文件搜索體驗(yàn)。

模糊搜索是一種近似搜索算法或技術(shù)。在這種搜索中,通過(guò)名稱搜索指定位置的文件,并實(shí)時(shí)顯示結(jié)果給用戶。

模糊搜索在網(wǎng)絡(luò)搜索引擎中很受歡迎,用戶開(kāi)始輸入術(shù)語(yǔ)后,它會(huì)開(kāi)始顯示與該術(shù)語(yǔ)相關(guān)的結(jié)果。

在本文中,我將討論兩個(gè)命令行工具,它們可以讓你在 Linux 中執(zhí)行模糊搜索:

  • fzf:模糊查找工具
  • fzy:模糊選擇工具

fzf:Linux 中的模糊查找工具

fzf 是一款可用于 Linux 的模糊搜索工具,你可以通過(guò)它進(jìn)行交互式文件搜索。

在 Ubuntu 中安裝 fzf,打開(kāi)終端并運(yùn)行以下命令:

sudo apt install fzf

雖然 fzf 本身可以正常工作,但最好與其他工具配合使用,以充分發(fā)揮其功能。

使用 fzf

打開(kāi)終端并運(yùn)行:

fzf

這將打開(kāi)一個(gè) fzf 提示符,在當(dāng)前工作目錄中搜索文件。

在終端中運(yùn)行 fzf 命令

在終端中運(yùn)行 fzf 命令

為 fzf 應(yīng)用邊框

你可以使用 --border 選項(xiàng)為 fzf 應(yīng)用邊框,有多種邊框可用,如 rounded(圓角)、sharp(尖角)等。

fzf --border=rounded

運(yùn)行帶有邊框選項(xiàng)設(shè)置為 rounded 和 sharp 的 fzf 命令

運(yùn)行帶有邊框選項(xiàng)設(shè)置為 rounded 和 sharp 的 fzf 命令

應(yīng)用背景和前景顏色

使用顏色屬性,你可以為 fzf 設(shè)置 ANSI 顏色,可以作為背景、前景或兩者都設(shè)置。

為 fzf 應(yīng)用顏色,用戶指定了顏色

為 fzf 應(yīng)用顏色,用戶指定了顏色

fzf --color="bg:black,fg:yellow"

你可以串聯(lián)這些選項(xiàng),使 fzf 在視覺(jué)上更加美觀。

現(xiàn)在,讓我展示一些 fzf 模糊搜索的實(shí)際用法。

使用 fzf 在 Bash 歷史中進(jìn)行搜索

當(dāng)然,Bash 歷史記錄中有 CTRL+R 的反向搜索功能。但如果你想使用 fzf 來(lái)獲得更好的外觀,可以運(yùn)行以下命令:

history | fzf

使用 fzf 模糊搜索在 bash 歷史中進(jìn)行搜索

使用 fzf 模糊搜索在 bash 歷史中進(jìn)行搜索

使用 fzf 結(jié)合 tree 命令

tree 命令 會(huì)列出文件和目錄,并顯示它們的層級(jí)關(guān)系。

使用 fzf 結(jié)合 tree 命令可以幫助你找到特定文件的絕對(duì)路徑。

tree -afR /home/$USER | fzf

運(yùn)行 Tree 命令并將輸出傳遞給模糊搜索

運(yùn)行 Tree 命令并將輸出傳遞給模糊搜索

?? 上述命令會(huì)調(diào)用 tree 并以遞歸方式列出包括隱藏文件在內(nèi)的所有文件(-a)。同時(shí),-f 選項(xiàng)告訴 tree 列出完整路徑。

在 fzf 中預(yù)覽文件

有時(shí),如果你可以獲得你搜索的文件的小型預(yù)覽,那會(huì)很有幫助。

幸運(yùn)的是,fzf 提供了一個(gè)預(yù)覽選項(xiàng)。你可以使用 --preview 來(lái)訪問(wèn)它。我在這里使用 find 命令使其更加有用。

find /home/$USER -type f | fzf --preview 'less {}'

在這里,當(dāng)你滾動(dòng)瀏覽結(jié)果時(shí),它將使用 less 顯示文本文件。

?? 如果你使用其他命令如 ls 等,請(qǐng)不要使用 -l 等選項(xiàng),因?yàn)檫@將顯示額外的詳細(xì)信息(文件權(quán)限)。這些額外的詳細(xì)信息會(huì)破壞 fzf 預(yù)覽所需的格式。在使用預(yù)覽功能時(shí),輸入到 fzf 的應(yīng)該只是文件名。

如果你已安裝了 bat,也可以使用它來(lái)預(yù)覽文件。

find /home/$USER -type f | fzf --preview 'bat --color always {}'

使用 bat 作為 FZF 預(yù)覽功能的文本查看器

使用 bat 作為 FZF 預(yù)覽功能的文本查看器

對(duì)于 Ubuntu 用戶,可以使用 batcat 來(lái)調(diào)用 bat。因此運(yùn)行:

find /home/$USER -type f | fzf --preview 'batcat --color always {}'

?? 為這些命令創(chuàng)建別名,這樣你就不需要反復(fù)輸入它們。

從任何地方使用 fzf 進(jìn)入任何目錄(高級(jí)技巧)

這比以前要復(fù)雜一些。在這里,你不能直接將 fzf 和 cd 連接在一起,因?yàn)樗鼈兪遣煌倪M(jìn)程。

你可以創(chuàng)建一個(gè)別名并使用以下命令:

cd $(find /home/$USER -type d | fzf)

或者,你可以按照下面解釋的方法進(jìn)行操作。

為此,你可能需要在 bashrc 中添加一個(gè)函數(shù)。讓我將這個(gè)函數(shù)稱為 finder?,F(xiàn)在請(qǐng)?zhí)砑右韵滦械侥愕?nbsp;bashrc 中。

finder() {
  local dir
  dir=$(find required/location/to/search/and/enter -type d | fzf)
  if [[ -n "$dir" ]]; then
    cd "$dir" || return
  fi
}

現(xiàn)在,你應(yīng)該 輸入路徑,其中包含你要搜索并進(jìn)入的目錄。

例如,我已經(jīng)使用 /home/$USER 替換了該部分,表示我要從任何位置進(jìn)入我的主目錄中的任何目錄。

保存你的 bashrc 文件后,要么重啟終端,要么運(yùn)行以下命令:

source ~/.bashrc

之后,你可以在終端上運(yùn)行 finder 命令,一旦找到要進(jìn)入的目錄,按回車鍵即可。

使用 fzf 命令結(jié)合 cd 命令進(jìn)入任意目錄

使用 fzf 命令結(jié)合 cd 命令進(jìn)入任意目錄

將選擇內(nèi)容復(fù)制到剪貼板

到目前為止,你已經(jīng)了解了如何使用 fzf,它提供了搜索結(jié)果或預(yù)覽。

現(xiàn)在,如果你想要復(fù)制某個(gè)項(xiàng)目的位置,你不必手動(dòng)執(zhí)行此操作。也有相應(yīng)的解決方案。

首先,確保你已經(jīng)安裝了 xclip

sudo apt install xclip

然后像這樣將其傳遞給 xclip

fzf | xclip -selection clipboard

這將復(fù)制你按下回車鍵的那些行到剪貼板上。

其他用途

正如我之前所說(shuō),你可以使用任何涉及大量文本,并希望交互式搜索特定內(nèi)容的命令。

  • cat ~/.bashrc | fzf - 在 Bashrc 文件中搜索
  • lsblk | fzf - 在鎖定設(shè)備列表中搜索
  • ps -aux | fzf - 在進(jìn)程列表中搜索

另一個(gè)選擇:Fzy,模糊選擇器

與 fzf 不同,fzy 是一個(gè)模糊選擇器,它會(huì)根據(jù)輸入提供一個(gè)菜單供你選擇。

例如,如果你將 fzy 與 ls 命令一起使用,它將給你提供一個(gè)類似菜單的界面。

使用 ls 命令的 fzy 命令

使用 ls 命令的 fzy 命令

默認(rèn)情況下,它會(huì)顯示十個(gè)條目。

使用 fzy 進(jìn)入目錄

與 fzf 類似,你也可以使用 fzy 進(jìn)入當(dāng)前工作目錄中的目錄:

cd $(find -type d | fzy)

使用任何編輯器打開(kāi)文件

或者使用你喜歡的編輯器打開(kāi)文件:

nano $(find -type f | fzy)

附加內(nèi)容:自定義文件和圖像預(yù)覽

下面的命令將在 Ubuntu 中打開(kāi)一個(gè)專門(mén)的自定義提示符,用于模糊搜索,你可以通過(guò)滾動(dòng)來(lái)預(yù)覽文本文件。

find /home/$USER -type f | fzf --color="bg:black,fg:yellow" --preview 'batcat --color always {}' --preview-window=bottom

為了方便訪問(wèn),可以在你的 bashrc 文件中為此創(chuàng)建一個(gè)別名。

或者在使用 timg 命令行圖像查看器時(shí),在 fzf 中進(jìn)行圖像預(yù)覽并滾動(dòng)。使用以下命令進(jìn)行安裝:

sudo apt install timg

?? 請(qǐng)注意,圖像查看器無(wú)法正確顯示圖像,因?yàn)檫@不是 fzf 預(yù)覽的主要目的。

fzf --preview 'timg -g 200x100 {}' --preview-window=right:90

對(duì)于那些喜歡折騰的人,可以嘗試對(duì)此部分進(jìn)行優(yōu)化。

現(xiàn)代化的替代方案

大多數(shù) Linux 命令都是從 UNIX 時(shí)代繼承下來(lái)的。它們雖然老舊,但功能如預(yù)期。但這并不意味著它們不能改進(jìn)。

我的意思是,你不需要重新發(fā)明輪子,但你總是可以努力改進(jìn)輪子。

像 fzf 和 fzy 這樣的現(xiàn)代化工具將 Linux 終端中的文件搜索提升到了一個(gè)新的水平。以下是一些其他有趣的命令行工具。

我嘗試給出了這些模糊搜索工具的一些實(shí)際示例。希望你對(duì)它們感到足夠有啟發(fā)性。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2024-01-26 17:26:19

LinuxNautilus文件搜索

2020-04-13 15:25:01

MySQL數(shù)據(jù)庫(kù)模糊搜索

2018-01-31 12:40:48

Linux命令文件搜索

2011-01-11 15:44:08

2018-12-19 14:43:13

Linux命令搜索文件

2009-10-23 15:53:00

linux庫(kù)文件

2022-06-30 07:45:29

搜索聯(lián)合搜索索引

2022-10-08 08:04:47

FindLinuxLocate

2019-10-25 09:00:27

Linux搜索命令文件查詢

2009-08-03 09:09:49

find命令詳解find命令目錄結(jié)構(gòu)

2019-03-18 09:40:44

Linux命令編程語(yǔ)言

2016-11-17 12:46:45

2019-01-21 09:06:08

Linuxetcservices

2019-08-28 15:38:04

Linux系統(tǒng)工具

2019-09-05 08:55:53

Linux數(shù)據(jù)庫(kù)Wget

2023-03-15 10:34:47

Linux文件數(shù)

2013-06-05 11:41:53

2017-03-30 10:13:11

Linux內(nèi)核文件系統(tǒng)

2021-12-29 15:02:48

Linux清空文件

2017-08-01 17:34:47

Linux內(nèi)核驅(qū)動(dòng)文件讀寫(xiě)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)