Como encontrar um arquivo no Linux usando a linha de comando

O que saber

  • O comando usado para procurar arquivos é chamado achar. A sintaxe básica do comando find é a seguinte: achar [nome do arquivo].
  • Depois de achar, use um atalho para especificar o diretório: "."para pastas aninhadas; "/"para todo o sistema de arquivos; "~"para o diretório inicial do usuário ativo.
  • Use a expressão -nome para pesquisar um nome de arquivo. Por exemplo: find / -name * .mp3 procura em todo o sistema de arquivos por um arquivo chamado * .mp3.

Este artigo explica o que Linuxachar comando é, oferece atalhos de localização de pesquisa, expressões comuns, exemplos de uso, padrões, como enviar saídas do comando find para um arquivo e como localizar e executar um comando em um arquivo.

Use o comando 'find' para localizar um arquivo no Linux

O comando usado para procurar arquivos é chamado achar.

A sintaxe básica do comando find é a seguinte:

encontre o nome do arquivo.

O caminho atualmente ativo marca o local de pesquisa, por padrão. Para pesquisar a unidade inteira, digite o seguinte:

localizar / nome do arquivo.

Se, no entanto, você deseja pesquisar a pasta em que está, use a seguinte sintaxe:

achar. nome do arquivo.
Encontre o comando lorem.odt na janela Terminal no Ubuntu Linux

Ao pesquisar por nome em toda a unidade, use a seguinte sintaxe:

find / -name filename.
  • A primeira parte do comando find é o comando find.
  • A segunda parte é por onde começar a pesquisar.
  • A próxima parte é uma expressão que determina o que encontrar.
  • A última parte é o nome do arquivo a ser localizado.

Para acessar o shell (às vezes chamado de janela de terminal) na maioria das distribuições, clique no ícone relevante ou pressione Ctrl + Alt + T.

Pesquisar atalhos de localização

O primeiro argumento após o comando find é o local que você deseja pesquisar. Embora você possa especificar um diretório específico, você pode usar um metacaractere para servir como um substituto. Os três metacaracteres que funcionam com este comando incluem:

  • Período (.): Especifica a pasta atual e todas as pastas aninhadas.
  • Barra para a frente (/): Especifica todo o sistema de arquivos.
  • Til (~): Especifica o diretório inicial do usuário ativo.

Pesquisar todo o sistema de arquivos pode gerar erros de acesso negado. Execute o comando com privilégios elevados (usando o comando sudo) se precisar pesquisar em locais que sua conta padrão normalmente não pode acessar.

Expressões

A expressão mais comum que você usará é -nome, que procura o nome de um arquivo ou pasta.

Existem, no entanto, outras expressões que você pode usar:

  • -amin n: O arquivo foi acessado pela última vez +/- n minutos atrás, dependendo de como você insere a hora.
  • -um mais novo: Toma outro arquivo como referência para localizar todos os arquivos que foram acessados ​​mais recentemente e o arquivo de referência.
  • -atime n: O arquivo foi acessado pela última vez mais / menos do que n dias atrás, dependendo de como você inseriu o tempo alvo (n).
  • -cmin n: O arquivo foi alterado pela última vez n minutos atrás, dependendo de como você insere o tempo alvo (n).
  • -mais recente: Toma outro arquivo como referência para localizar todos os arquivos que foram acessados ​​mais recentemente e o arquivo de referência.
  • -ctime n: O arquivo foi acessado pela última vez mais / menos do que n dias atrás, dependendo de como você inseriu o tempo alvo (n).
  • -vazio: O arquivo está vazio.
  • -executável: O arquivo é executável.
  • -falso: Sempre falso.
  • -fstype type: O arquivo está no sistema de arquivos especificado.
  • -gid n: O arquivo pertence ao grupo com o ID n.
  • -group groupname: O arquivo pertence ao grupo nomeado.
  • padrão -ilname: Pesquise um link simbólico, mas ignore o caso.
  • -iname padrão: Pesquise um arquivo, mas ignore o caso.
  • -inum n: Pesquise um arquivo com o inode especificado.
  • -ipath path: Procure um caminho, mas ignore o caso.
  • expressão -iregex: Pesquise uma expressão, mas ignore o caso.
  • -links n: Pesquise um arquivo com o número especificado de links.
  • -lname nome: Pesquise um link simbólico.
  • -mmin n: O arquivo foi acessado pela última vez +/- n minutos atrás, dependendo de como você insere a hora.
  • -mtime n: O arquivo foi acessado pela última vez mais / menos do que n dias atrás, dependendo de como você inseriu o tempo alvo (n).
  • -nome nome: Pesquise um arquivo com o nome especificado.
  • -novo nome: Pesquise um arquivo editado mais recentemente do que o arquivo de referência fornecido.
  • -nogrupo: Pesquise um arquivo sem id de grupo.
  • -nouser: Pesquise um arquivo sem nenhum usuário anexado a ele.
  • -path path: Procure um caminho.
  • -legível: Encontre arquivos legíveis.
  • - padrão regex: Pesquise por arquivos que correspondam a uma expressão regular.
  • -tipo tipo: Pesquise um tipo específico. As opções de tipo incluem:
    • -tipo d: Directoris
    • -tipo f: Arquivos
    • -tipo l: Links simbólicos
  • -uid uid: O id de usuário numérico do arquivo é o mesmo que o uid.
  • -nome do usuário: O arquivo pertence ao usuário especificado.
  • - gravável: Pesquise os arquivos que podem ser gravados.

Exemplo de uso do comando Find

Aqui estão algumas maneiras de usar o comando find.

Como encontrar arquivos acessados ​​há mais de um certo número de dias atrás

Para localizar todos os arquivos em sua pasta inicial acessados ​​há mais de 100 dias:

encontre ~ -atime +100.

Como Encontrar Arquivos e Pastas Vazias

Para encontrar todos os arquivos e pastas vazios em seu sistema:

find / -empty.

Como encontrar todos os arquivos executáveis

Para encontrar todos os arquivos executáveis ​​em seu computador:

find / -executable.

Como encontrar todos os arquivos legíveis

Para encontrar todos os arquivos legíveis:

find / -readable.

Padrões

Ao pesquisar um arquivo, você pode usar um padrão. Por exemplo, pesquise todos os arquivos com a extensão mp3:

find / -name * .mp3.

Dependendo do shell que você está usando, pode ser necessário escapar do asterisco. Se você executar o comando e não obtiver os resultados esperados, tente citar todo o padrão para escapar do asterisco, assim: find / -name '* .mp3'

Terminal no Ubuntu Linux mostrando o comando " find -name * .mp3"

Como enviar saída do comando Find para um arquivo

O principal problema com o comando find é que às vezes ele pode retornar muitos resultados para serem examinados de uma vez. Canalize a saída para o comando de caudaou envie as linhas para um arquivo da seguinte maneira:

find / -name * .mp3 -fprint nameoffiletoprintto.

Como Encontrar e Executar um Comando em um Arquivo

Para pesquisar e editar um arquivo ao mesmo tempo, digite:

find / -name filename -exec nano '{}' \;

O comando acima procura um arquivo chamado nome do arquivo e, em seguida, executa o editor nano para o arquivo que encontrar.

Nano é o nome de um comando, não uma parte exata desta sintaxe.