A Linuxban a tartalom szerinti fájlkeresés használata jelentősen csökkentheti a nagy és összetett fájlrendszerekben való keresés idejét és erőfeszítéseit.
Ez a keresés különösen hasznos lehet, ha olyan fájlokat szeretne megtalálni, amelyek egy bizonyos karakterláncot vagy kulcsszót tartalmaznak, vagy ha az összes olyan fájlt szeretné megtalálni, amely megfelel egy bizonyos mintának vagy kritériumnak.
A fájlok tartalom szerinti keresése különböző feladatokhoz használható, például a következőkhöz:
A fájlok tartalom szerinti keresésének általános célja, hogy megkönnyítse a fájlrendszerrel való munkát, és a fájlrendszerben megtalálja a szükséges információkat.
Kezdjük az ack segédprogrammal. Ezt 2005-ben hozták létre a grep alternatívájaként, és hamar népszerűvé vált a fejlesztők körében.
Számos előnye van a grep-vel
szemben, többek között:
grep
. Ez azt jelenti, hogy könnyen megtalálhatja a rendszerében elrejtett fájlokat.Példák az ack használatára:
- Az aktuális mappában és almappáiban található összes olyan fájl keresése, amely tartalmazza a
"teszt" szót: ack "teszt"
- Ugyanez, de a
.bak
kiterjesztésű fájlok kizárásával: ack "test" --ignore-file=match:/.bak$/
- Az aktuális mappában lévő összes olyan fájl megkeresése, amely tartalmazza a "hello" karakterláncot, és minden fájl első 2 sorának kiadása:
ack "hello" --heading --max-count=2
A második érdekes eszköz a ripgrep. Sok tekintetben hasonlít az ack-re, de gyorsabb keresési algoritmust használ, ami különösen nagy projekteknél teszi hasznossá.
Íme néhány példa:
"test" szót: rg "test"
.bak
kiterjesztésű fájlok kizárásával : rg "test" --glob "!*.bak"
rg "hello" --heading --max-columns=2
A végén érdemes megemlíteni az fzf-et. Ez nem csak egy sztringkereső, mint az ack és a ripgrep. Az fzf egy olyan segédprogram, amely fájlok, mappák és elemek keresésére szolgál egy listában. Egyébként hasonlóan működik, mint az ack/ripgrep, de azzal a kiegészítéssel, hogy az eredményeket élőben is lehet szűrni. Íme néhány példa:
- F betűvel kezdődő fájlok keresése a számítógépen:
locate F | fzf -m
- Kilépni az aktuális mappából és a kívánt könyvtárba lépni:
cd **<TAB> | fzf
- Válassza ki az SVN revíziót és másolja a számot a vágólapra:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Remélhetőleg ezek az eszközök segítenek gyorsan és hatékonyan megtalálni a szükséges fájlokat és karakterláncokat. Bármelyiket is választja, mindegyik olyan fejlett keresést kínál, amely jelentősen felgyorsíthatja a munkáját.