Pesquisa de site

fd - Uma alternativa simples e rápida para localizar comandos


A maioria dos usuários do Linux está bem familiarizada com o comando find e com os muitos casos em que ele pode ser usado. Hoje vamos revisar uma alternativa para o comando find, chamada fd.

fd é uma ferramenta simples, rápida e fácil de usar, destinada a ter um desempenho mais rápido em comparação com find. Ele não pretende substituir completamente o find, mas sim fornecer uma alternativa fácil de usar com desempenho um pouco mais rápido.

Recursos do fd

Alguns dos recursos notáveis do fd:

  • Sintaxe fácil de usar – fd *pattern* em vez de find -iname *pattern*.
  • A saída colorida é semelhante à do comando ls.
  • Desempenho rápido. Os benchmarks do desenvolvedor estão disponíveis aqui.
  • Pesquisa inteligente sem distinção entre maiúsculas e minúsculas por padrão e alterna para distinção entre maiúsculas e minúsculas se o padrão contiver um símbolo maiúsculo.
  • Não procura arquivos e diretórios ocultos por padrão.
  • Não analisa .gitignore por padrão.
  • Consciência Unicode.

Como instalar o fd no Linux

Veremos como instalar fd em diferentes distribuições Linux usando o gerenciador de pacotes padrão conforme mostrado.

sudo apt install fd-find    [On Debian, Ubuntu and Mint]
sudo yum install fd-find    [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd  [On Gentoo Linux]
sudo pacman -S fd           [On Arch Linux]
sudo zypper install fd      [On OpenSUSE]  
sudo apk add fd             [On Alpine Linux]    

Como usar fd no Linux

Semelhante ao comando find, fd tem muitos casos de uso, mas vamos começar verificando as opções disponíveis:

fd -h
OR
fd --help

Vejamos alguns exemplos. Você pode executar fd sem nenhum argumento, a saída é muito semelhante ao comando ls -R.

fd

Nos próximos exemplos de fd, usarei uma instalação padrão do WordPress localizada em /var/www/html/ para pesquisar diferentes arquivos e pastas.

No exemplo abaixo, imprimi apenas os 10 primeiros resultados para a saída mais curta usando o redirecionamento de pipe com o comando head.

fd | head

Encontre todos os arquivos JPG no Linux

Digamos que queremos encontrar todos os arquivos jpg. Podemos usar o sinalizador “-e ” para filtrar por extensão de arquivo:

fd -e jpg

Se você deseja especificar um diretório de pesquisa, basta fornecê-lo como argumento:

fd <pattery> <directory>

Procure por String em todos os arquivos PHP no Linux

O sinalizador “-e ” pode ser usado em combinação com um padrão conforme mostrado:

fd -e php index

O comando acima procurará arquivos com extensão .php e conterá a string “index”:

Se quiser excluir alguns resultados, você pode usar o sinalizador “-E ” conforme mostrado:

fd -e php index -E wp-content

Este comando irá procurar todos os arquivos com extensão php, contendo a string “index” e excluirá os resultados do diretório “wp-content”.

Encontre todos os arquivos JPG e modifique a permissão

Assim como find, você pode usar argumentos -x ou --exec para executar comandos paralelos com os resultados da pesquisa.

Aqui está um exemplo onde usaremos chmod para alterar as permissões dos arquivos de imagem

fd -e jpg -x chmod 644 {}

O código acima encontrará todos os arquivos com extensão jpg e executará chmod 644 .

Aqui estão algumas explicações úteis e o uso dos colchetes:

  • {} – um espaço reservado que será alterado com o caminho do resultado da pesquisa (wp-content/uploads/01.jpg).
  • {.} – semelhante a {}, mas sem usar a extensão de arquivo (wp-content/uploads/01).
  • {/}: um espaço reservado que será substituído pelo nome base do resultado da pesquisa (01.jpg).
  • {//}: diretório pai do caminho descoberto (wp-content/uploads).
  • {/.}: Somente o nome base, sem a extensão (01).
Conclusão

Esta foi uma breve revisão do comando fd, que alguns usuários podem achar mais fácil e rápido de usar. Conforme mencionado anteriormente neste artigo, fd não pretende substituir completamente find, mas sim fornecer um uso simples, pesquisa mais fácil e melhor desempenho. Fd não ocupa muito espaço e é uma ótima ferramenta para se ter em seu arsenal.