GNU/Linux >> Znalost Linux >  >> Linux

Nahradit find za fd v Linuxu

Mnoho programátorů Linuxu používá find velí každý den své kariéry. Ale find poskytuje omezenou sadu položek souborového systému, a pokud musíte udělat velkou sadu find operace, není to ani moc rychlé. Takže místo toho raději používám Rust fd protože poskytuje rozumné výchozí hodnoty, které fungují pro většinu případů použití.

Jak říká jeho README, "fd je program pro vyhledávání záznamů ve vašem souborovém systému. Je to jednoduchá, rychlá a uživatelsky přívětivá alternativa k find ." Obsahuje paralelizované procházení adresářů, takže může prohledávat více adresářů najednou. Podporuje regulární výrazy (regex) a vzory založené na globu.

Instalovat fd

V systému Linux můžete nainstalovat fd z vašeho softwarového úložiště (seznam dostupných balíčků lze nalézt na stránce fd na Repology.) Například na Fedoře:

$ sudo dnf install fd-find 

V systému macOS použijte MacPorts nebo Homebrew.

Případně můžete použít správce balíčků Rust's Cargo:

$ cargo install fd-find 

Použít fd

Chcete-li provést jednoduché vyhledávání, spusťte fd po jakémkoli argumentu, například:

$ fd sh
registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.bash
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.zsh
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
registry/src/github.com-1ecc6299db9ec823/git2 -0.13.18/src/stash.rs
registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
registry/src/github.com-1ecc6299db9ec823/libgit2 -sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/ stash.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
registry/src/github. com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
registry/src/githu b.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1. /libgit2/script/valgrind.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
[...]

Pokud chcete vyhledat konkrétní adresář, zadejte cestu k adresáři jako druhý argument pro fd , například:

$ fd passwd /etc
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd

Chcete-li vyhledat konkrétní příponu souboru, použijte -e jako možnost. Například:

$ fd . '/home/ssur/exa' -e md
/home/ssur/exa/README.md
/home/ssur/exa/devtools/README.md
/home/ssur/ exa/man/exa.1.md
/home/ssur/exa/man/exa_colors.5.md
/home/ssur/exa/xtests/README.md
$

Příkaz můžete také provést zadáním -x nebo -X .

  • -x/--exec option spustí externí příkaz pro každý výsledek vyhledávání (paralelně).
  • -X/--exec-batch volba spustí externí příkaz jednou se všemi výsledky hledání jako argumenty.

Chcete-li například rekurzivně najít všechny archivy ZIP a rozbalit je:

$ fd -e zip -x unzip 

Nebo chcete-li vypsat všechny soubory v konkrétním adresáři, které byly změněny za posledních n počet dní, použijte --changed-within možnost:

$ fd . '/home/ssur/Work/' --changed-within 10d
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd. java
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
[...]

A k prohledání všech souborů, které byly změněny před určitým počtem dní, použijte --changed-before n možnost:

$ fd . '/home/ssur/Work/' --changed-before 365d 

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Zde . funguje jako zástupný znak pro pokyn fd vrátit všechny soubory.

Chcete-li se dozvědět více o funkcích fd , prostudujte si jeho dokumentaci na GitHubu.

Závěr

Jedna věc se mi na fd obzvlášť líbí je, že vzor vyhledávání ve výchozím nastavení nerozlišuje velká a malá písmena, což usnadňuje hledání věcí, i když máte nepřesné znalosti o tom, co hledáte. Ještě lépe, automaticky přepne na rozlišování velkých a malých písmen, pokud vzor obsahuje velká písmena.

Další výhodou je, že používá barevné kódování ke zvýraznění různých typů souborů.

Pokud již tento úžasný nástroj Rust používáte, dejte nám prosím vědět své myšlenky v komentářích.


Linux
  1. Nahraďte chytré uvozovky příkazem sed pro Linux

  2. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  3. Nahradit manuálové stránky Tealdeerem v Linuxu

  1. Najděte soubor pomocí příkazů Najít a najít v Linuxu

  2. Jak najít všechny soubory končící na .rb s Linuxem?

  3. Linux odstranit soubor s velikostí 0

  1. Jak najít soubory pomocí příkazu fd v Linuxu

  2. Najít a nahradit sed v adresáři a podadresářích

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?