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.