Como usar o comando fd no Linux

Uma janela de terminal em um PC Linux com uma área de trabalho no estilo Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

No Linux, fdé uma alternativa mais fácil ao  findcomando. Ele tem uma sintaxe simplificada, usa padrões razoáveis ​​e tem comportamento de senso comum integrado. Vamos seguir seu ritmo.

fd versus find: Qual é a diferença?

O fd comando não pretende substituir o findcomando tradicional , que está no Linux, bem, desde sempre . Em vez disso, fd tenta satisfazer a maioria dos usos comuns de  findde uma maneira mais direta – e geralmente é oito ou nove vezes mais rápido do que find. Você pode ver alguns de seus benchmarks na página do repositório GitHub do projeto .

fdtem uma saída colorida, semelhante à de alguns lsmodos. É recursivo, mas não pesquisa diretórios ocultos por padrão. Ele conhece o Git  e também irá ignorar automaticamente quaisquer padrões em seu arquivo “.gitignore”.

fdnão faz distinção entre maiúsculas e minúsculas por padrão. No entanto, se seu padrão de pesquisa contém uma letra maiúscula,  fdopera em um modo de diferenciação de maiúsculas e minúsculas. Claro, você pode ignorar os padrões, mas, em muitos casos, eles funcionam a seu favor.

Instalando fd

Desde o Ubuntu 19.04 (Disco Dingo), você pode instalar fddiretamente chamando o pacote mantido oficialmente com apt-get. Se você estiver executando uma versão mais antiga do Ubuntu, verifique as instruções de instalação na página do hub Git .

Digite o seguinte:

sudo apt-get install fd-find

sudo apt-get install fd-find em uma janela de terminal.

No Ubuntu, o comando é  fdfind para evitar um conflito de nome com outro utilitário existente. Se você quiser  fd, pode configurar um alias:

alias fd = fdfind

alias fd = fdfind em uma janela de terminal.

Para tornar o alias persistente de forma que permaneça disponível após a reinicialização, coloque-o em seu arquivo “.bashrc” ou “.bash_aliases”.

Recomendado:  O que é um golpe de “portabilidade” de telefone e como posso me proteger?

Para instalar fdno Fedora, digite este comando:

sudo dfn install fd-find

sudo dnf install fd-find em uma janela de terminal.

No Manjaro, digite o seguinte:

sudo pacman -Syu fd

sudo pacman -Syu fd em uma janela de terminal.

fd versus fdfind

Para evitar confusão, deixamos o comando com seu nome padrão,,  fdfindem nosso PC de teste do Ubuntu. fde fdfindsão exatamente o mesmo comando, como você verá no exemplo a seguir (se você pedir fdfindpara mostrar sua versão, ele se autodenomina “fd”):

fdfind --version

fdfind --version em uma janela de terminal.

Chamaremos o comando de “fed”, mas nos exemplos usaremos o Ubuntu “fdfind”. Em outras distribuições do Linux, você pode digitar “fd” em vez de “fdfind” para salvar algumas teclas.

Pesquisas simples com fd

Se você usar fdsem opções de linha de comando, ele se comportará um pouco como ls, exceto que lista os arquivos em subdiretórios por padrão.

Digite o seguinte:

fdfind

fdfind em uma janela de terminal.

A saída aparece em cores diferentes para diferentes tipos de arquivos e diretórios.

Saída de fdfind em uma janela de terminal.

Para ver os arquivos de um tipo específico, use a  -e opção (extensão). Observe que você não precisa preceder a extensão com um ponto (.), Nem faz distinção entre maiúsculas e minúsculas.

Por exemplo, você pode digitar o seguinte:

fdfind -e png

fdfind -e png em uma janela de terminal.

Agora, os únicos arquivos listados são arquivos de imagem PNG.

saída de fdfind -e png em uma janela de terminal.

Para procurar um único arquivo, digite seu nome na linha de comando, assim:

fdfind index.page

fdfind index.page em uma janela de terminal.

O arquivo foi encontrado e está em um subdiretório. Não precisamos informar fdpara pesquisar recursivamente.

Para que a pesquisa comece em um diretório específico, inclua um caminho de arquivo na linha de comando. O comando a seguir iniciará uma pesquisa no diretório “/ etc” e procurará os arquivos que incluem “passwd” no nome do arquivo:

fdfind passwd / etc

fdfind passwd / etc em uma janela de terminal.

Aqui, estamos pesquisando todos os arquivos de código-fonte C que contêm “coord” no nome do arquivo:

fdfind -ec coord

fdfind -ec coord em uma janela de terminal.

Dois arquivos correspondentes foram encontrados.

fd e Git

Git é um sistema de controle de versão de código-fonte extremamente popular . Se você usa Git em seu computador, provavelmente usa arquivos “.gitignore” para informar ao Git quais arquivos ele deve se preocupar e quais pode ignorar. Por padrão, fd respeita as configurações em seus arquivos “.gitignore”.

Recomendado:  Por que as geladeiras inteligentes são o futuro

Neste diretório, temos um repositório Git e um arquivo “.gitignore”. Nós digitamos o seguinte:

ls -adl .git *

ls -adl .git * em uma janela de terminal.

Vamos pedir fdpara listar quaisquer arquivos que contenham “coord” no nome do arquivo. Em seguida, repetiremos a pesquisa e usaremos a opção -I(não ignorar). Isso diz fdpara ignorar as configurações no arquivo “.gitignore” e relatar todos os arquivos correspondentes.

Para fazer tudo isso, digitamos o seguinte:

fdfind coord
fdfind coord -I

fdfind coord em uma janela de terminal.

Os dois arquivos extras no segundo conjunto de resultados são arquivos de objeto. Eles são criados quando um programa de arquivo é compilado. Em seguida, eles são usados ​​pelo vinculador para criar a versão executável final do programa.

Arquivos de objeto são normalmente ignorados por programas de controle de versão de código-fonte. Eles são regenerados toda vez que você compila seu programa, portanto, você não precisa armazenar cópias deles. Há uma entrada no arquivo “.gitignore” que instrui o Git a ignorar os arquivos objeto e, por padrão, os fd ignora também.

A opção -I(sem ignorar) força fda retornar tudo o que encontrar, em vez de ser guiado pelo arquivo “.gitginore”.

Tipos de arquivo e distinção entre maiúsculas e minúsculas

Você pode pedir fdpara procurar por diretórios, arquivos (incluindo aqueles que são executáveis ​​e vazios) e links simbólicos. Você pode fazer isso usando a -topção (tipo), seguida por uma das letras abaixo:

  • f : Arquivo.
  • d : Diretório.
  • l : Link simbólico.
  • x : Arquivo executável.
  • e : Arquivo vazio.

O seguinte procura por um diretório chamado imagens:

imagens fdfind -td

fdfind -td imagens em uma janela de terminal.

Uma correspondência é encontrada, um subdiretório abaixo do atual.

Vamos ver como a diferenciação de maiúsculas e minúsculas funciona com os padrões de pesquisa. Nós digitamos o seguinte para pesquisar primeiro os arquivos que contêm “geo” em seus nomes de arquivo e, em seguida, aqueles que contêm “Geo” em seus nomes de arquivo:

fdfind -tf geo
fdfind -tf Geo

fdfind -tf geo em uma janela de terminal.

No primeiro comando, usamos um padrão de pesquisa em letras minúsculas, o que fez  fdcom que funcionasse sem distinção entre maiúsculas e minúsculas. Isso significa que “geo” e “geo” são correspondências válidas.

Recomendado:  Como organizar a tela inicial do seu iPhone

Nosso segundo comando continha um caractere maiúsculo, o que fazia  fdcom que funcionasse com distinção entre maiúsculas e minúsculas. Isso significa que apenas “Geo” é uma correspondência válida.

Execução de Comando

fd comando permite lançar outro comando e executá-lo em cada um dos arquivos encontrados.

Digamos que sabemos que existe um arquivo Zip em algum lugar da árvore de diretórios do código-fonte. Podemos procurá-lo usando o seguinte comando, que procura arquivos com a extensão ZIP:

fdfinf -e zip

fdfinf -e zip em uma janela de terminal.

Com a -xopção (exec), você pode passar cada arquivo encontrado para outro comando para ser processado por ele. Por exemplo, podemos digitar o seguinte para chamar o utilitário unzip para descompactar nosso arquivo ZIP (o “{}” é um espaço reservado que representa o arquivo encontrado):

fdfind -e zip -x unzip {}

Isso descompactará o arquivo no diretório de trabalho atual. Se quisermos que seja descompactado no diretório que contém o arquivo ZIP, podemos usar um dos seguintes marcadores de posição:

  • {} : O caminho completo do arquivo e o nome do arquivo encontrado.
  • {/} : O nome do arquivo encontrado.
  • {//} : O diretório que contém o arquivo encontrado.
  • {/.} : O nome do arquivo encontrado, sem a extensão.

Para que nosso arquivo ZIP seja encontrado e descompactado no diretório que o contém, podemos usar a opção unzip -d(diretório) e passar o marcador de posição do diretório pai ( {//}):

fdfind -e zip -x unzip {} -d {//}

fdfind-e zip -x descompacta {} -d {//} em uma janela de terminal.

O arquivo ZIP é então localizado e descompactado em seu diretório pai.

Saída de fdfind-e zip -x unzip {} -d {//} em uma janela de terminal.

Seu Go-to Find?

Porque cobre os usos mais comuns com simplicidade, fd pode facilmente se tornar o seu comando go-to “find”. Sempre que precisar de seus recursos mais avançados, você pode sempre voltar para aquele veterano experiente find,.