Linuxon az fd a find parancs egyszerűbb alternatívája. Egyszerűsített szintaxissal rendelkezik, ésszerű alapértelmezéseket használ, és beépített józan ész viselkedéssel rendelkezik. Vegyük végig a tempóját.
Tartalomjegyzék
fd versus keresés: mi a különbség?
Az fd parancs nem helyettesíti a hagyományos keresési parancs, amely rendelkezik Linuxon volt, nos, örökké. Ehelyett az fd egyszerűbb módon próbálja kielégíteni a keresés általános használatának többségét – és gyakran nyolc-kilencszer gyorsabb, mint a find. Néhány referenciaértékét láthatja a projektben GitHub adattár oldala.
Az fd színezett kimenettel rendelkezik, hasonlóan néhány ls módhoz. Rekurzív, de alapértelmezés szerint nem keres a rejtett könyvtárakban. Az tudja Gitről és automatikusan figyelmen kívül hagy minden mintát a „.gitignore” fájlban.
Az fd alapértelmezés szerint nem érzékeny a kis- és nagybetűkre. Ha azonban a keresési minta nagybetűt tartalmaz, az fd kis- és nagybetűérzékeny módban működik. Természetesen felülírhatja az alapértelmezett értékeket, de sok esetben az Ön javára működnek.
Az fd telepítése
Az Ubuntu 19.04 (Disco Dingo) óta az fd-t közvetlenül telepítheti a hivatalosan karbantartott csomag apt-get parancsával. Ha az Ubuntu régebbi verzióját használja, ellenőrizze a telepítési utasítások a Git hub oldalán.
Írja be a következőket:
sudo apt-get install fd-find
Az Ubuntuban az fdfind parancs, hogy elkerülje a névütközést egy másik meglévő segédprogrammal. Ha azt szeretné, hogy fd legyen, beállíthat egy aliast:
alias fd=fdfind
Ahhoz, hogy az álnév állandó maradjon, hogy újraindítás után is elérhető maradjon, helyezze el a „.bashrc” vagy a „.bash_aliases” fájlba.
Az fd Fedora telepítéséhez írja be ezt a parancsot:
sudo dfn install fd-find
A Manjaro gépen írja be a következőket:
sudo pacman -Syu fd
fd versus fdfind
A félreértések elkerülése érdekében Ubuntu tesztszámítógépünkön a parancsot az alapértelmezett néven hagytuk, az fdfind. Az fd és az fdfind pontosan ugyanaz a parancs, amint az a következő példában is látható (ha megkéri az fdfind-et, hogy mutassa meg a verzióját, akkor „fd”-nek nevezi magát):
fdfind --version
A parancsot „fed”-nek nevezzük, de a példákban az Ubuntu „fdfind” parancsát fogjuk használni. Más Linux-disztribúciókban az „fdfind” helyett beírhatja az „fd” kifejezést, hogy megtakarítson néhány billentyűleütést.
Egyszerű keresések az fd segítségével
Ha az fd-t parancssori opciók nélkül használjuk, akkor az ls-hez hasonlóan viselkedik, kivéve, hogy alapértelmezés szerint alkönyvtárakba sorolja a fájlokat.
Írja be a következőket:
fdfind
A kimenet különböző színekben jelenik meg a különböző fájltípusokhoz és könyvtárakhoz.
Egy adott típusú fájlok megtekintéséhez használja az -e (kiterjesztés) kapcsolót. Ne feledje, hogy a kiterjesztés előtt nem kell pontot (.) írni, és a kis- és nagybetűk között sem kell különbséget tenni.
Például beírhatja a következőket:
fdfind -e png
Most csak a PNG képfájlok szerepelnek a listán.
Egyetlen fájl kereséséhez írja be a nevét a parancssorba, például:
fdfind index.page
A fájl megtalálható, és történetesen egy alkönyvtárban van. Nem kellett mondanunk az fd-nek, hogy rekurzívan keressünk.
Ha a keresést egy adott könyvtárban szeretné elindítani, adjon meg egy fájl elérési utat a parancssorban. A következő parancs elindítja a keresést az „/etc” könyvtárban, és megkeresi azokat a fájlokat, amelyek nevében a „passwd” szerepel:
fdfind passwd /etc
Itt minden olyan C forráskód fájlt keresünk, amelyek a fájlnévben a „coord” szót tartalmazzák:
fdfind -e c coord
Két egyező fájl található.
fd és Git
A Git rendkívül népszerű forráskód verzió vezérlő rendszer. Ha a Git-et használja a számítógépén, valószínűleg „.gitignore” fájlokat használ annak meghatározására, hogy mely fájlokkal kell foglalkoznia, és melyeket hagyhatja figyelmen kívül. Alapértelmezés szerint az fd tiszteletben tartja a „.gitignore” fájlok beállításait.
Ebben a könyvtárban van egy Git tárhely és egy „.gitignore” fájl. A következőket írjuk be:
ls -adl .git*
Kérjük meg az fd-t, hogy listázza ki azokat a fájlokat, amelyek nevében a „coord” kifejezés szerepel. Ezután megismételjük a keresést, és az -I (no ignore) opciót használjuk. Ez arra utasítja az fd-t, hogy figyelmen kívül hagyja a „.gitignore” fájl beállításait, és jelentsen minden egyező fájlt.
Mindehhez a következőket írjuk be:
fdfind coord
fdfind coord -I
A második eredményhalmazban található két extra fájl objektumfájl. Ezek akkor jönnek létre, amikor egy fájlprogramot fordítanak. A linker ezután felhasználja őket a program végső végrehajtható verziójának létrehozásához.
Az objektumfájlokat a forráskód-verzióvezérlő programok általában figyelmen kívül hagyják. Minden alkalommal újragenerálódnak, amikor lefordítod a programot, így nem kell másolatokat tárolnod róluk. A „.gitignore” fájlban van egy bejegyzés, amely arra utasítja a Git-et, hogy figyelmen kívül hagyja az objektumfájlokat, és alapértelmezés szerint az fd is figyelmen kívül hagyja azokat.
Az -I (no ignore) opció arra kényszeríti az fd-t, hogy mindent visszaadjon, amit talál, ahelyett, hogy a „.gitginore” fájl irányítaná.
Fájltípusok és kis- és nagybetűk érzékenysége
Megkérheti az fd-t, hogy keressen könyvtárakat, fájlokat (beleértve azokat is, amelyek futtathatók és üresek) és szimbolikus hivatkozásokat. Ezt megteheti a -t (type) kapcsolóval, amelyet az alábbi betűk egyike követ:
f: Fájl.
d: Címtár.
l: Szimbolikus link.
x: Futtatható fájl.
e: Üres fájl.
A következő egy images nevű könyvtárat keres:
fdfind -td images
Egyezés található, egy alkönyvtárral alacsonyabban, mint az aktuális.
Nézzük meg, hogyan működik a kis- és nagybetűk megkülönböztetése a keresési mintákkal. A következőket írjuk be, hogy először megkeressük azokat a fájlokat, amelyek fájlnevében a „geo”, majd a „Geo” szót tartalmazó fájlokat keressük:
fdfind -tf geo
fdfind -tf Geo
Az első parancsban kisbetűs keresési mintát használtunk, ami miatt az fd a kis- és nagybetűk megkülönböztetése nélkül működött. Ez azt jelenti, hogy a „Geo” és a „geo” is érvényes egyezések.
A második parancsunk egy nagybetűt tartalmazott, ami miatt az fd kis- és nagybetűk megkülönböztetésével működött. Ez azt jelenti, hogy csak a „Geo” egyezés érvényes.
Parancs végrehajtása
Az fd parancs lehetővé teszi egy másik parancs elindítását, és annak végrehajtását az összes talált fájlon.
Tegyük fel, hogy tudjuk, hogy van a ZIP fájl valahol a forráskód-könyvtárfánkban. Megkereshetjük a következő paranccsal, amely ZIP kiterjesztésű fájlokat keres:
fdfinf -e zip
Az -x (exec) kapcsolóval minden talált fájlt átadhat egy másik parancsnak, hogy az feldolgozza. Például beírhatjuk a következőt a híváshoz unzip segédprogram a ZIP-fájl kicsomagolásához (a „{}” a talált fájl helyőrzője):
fdfind -e zip -x unzip {}
Ez kicsomagolja a fájlt az aktuális munkakönyvtárban. Ha azt szeretnénk, hogy a ZIP-fájlt tartalmazó könyvtárba kicsomagoljuk, akkor a következő helyőrzők egyikét használhatjuk:
{}: A talált fájl teljes elérési útja és neve.
{/}: A talált fájl fájlneve.
{//}: A talált fájlt tartalmazó könyvtár.
{/.}: A talált fájl fájlneve kiterjesztés nélkül.
A ZIP-fájl megtalálásához és kicsomagolásához az azt tartalmazó könyvtárban használhatjuk az unzip -d (könyvtár) opciót, és átadhatjuk a szülőkönyvtár helyőrzőjét ({//}):
fdfind -e zip -x unzip {} -d {//}
A ZIP-fájl ezután megtalálható, és kicsomagolva a szülőkönyvtárában található.
Az Ön kedvenc keresése?
Mivel ilyen egyszerűséggel fedi le a leggyakoribb felhasználásokat, az fd könnyen a „találd” parancsoddá válhat. Amikor fejlettebb funkcióira van szüksége, bármikor visszatérhet ahhoz a tapasztalt veteránhoz, találja meg.