Hostwinds Tutoriais

Resultados da busca por:


Índice


Listando arquivos
achar
localizar
ls
GNOMO
Pesquisando por nome
achar
localizar
GNOMO
Pesquisando por tamanho
du
achar
localizar
GNOMO
Encontrando arquivos vazios
achar
localizar
GNOMO
Executando ações em correspondências de arquivo
achar
localizar
GNOMO
Refinando pesquisas com o comando Grep
Conclusão

Como encontrar arquivos no Ubuntu com terminal

Tag: Cloud Servers,  Dedicated Server 

Listando arquivos
achar
localizar
ls
GNOMO
Pesquisando por nome
achar
localizar
GNOMO
Pesquisando por tamanho
du
achar
localizar
GNOMO
Encontrando arquivos vazios
achar
localizar
GNOMO
Executando ações em correspondências de arquivo
achar
localizar
GNOMO
Refinando pesquisas com o comando Grep
Conclusão

Neste tutorial, examinaremos vários métodos para encontrar arquivos e diretórios (ou seja, pastas) no Ubuntu 20.04 LTS, como encontrar todos os arquivos com um .velho Extensão ou encontrando todos os arquivos e diretórios maiores que 2 GB.Também examinaremos como executar um ou mais comandos em cada arquivo encontrado.

Observe que um dos comando que usaremos é localizar, que não vem com o Ubuntu nativamente.o localizar O comando é frequentemente mais rápido que achar Porque mantém um banco de dados de todos os arquivos que são atualizados a cada 24 horas.o localizar O comando pode ser instalado da seguinte forma:

sudo apt install mlocate

Como tudo em sistemas operacionais do tipo UNIX, incluindo o Ubuntu, é considerado um arquivo, o termo "arquivo" também indicará "diretório", a menos que seja chamado de outra forma.Além disso, os exemplos de ambiente de desktop são baseados em GNOMO.Para aprender a acessar seu remoto computador Ubuntu usando o GNOME, consulte Usando o Windows Remote Desktop com o Ubuntu 20.04 TLS.

Com isso, vamos começar.

Listando arquivos

Para listar todos os arquivos do diretório atual, os seguintes comandos podem ser usados:

achar

Os sem adornos achar O comando liste recursivamente todos os arquivos do diretório atual:

find

localizar

o localizar O comando é semelhante a achar mas requer um padrão (o personagem curinga neste caso):

locate *


A velocidade de localizar tem um preço, no entanto.Arquivos recentemente modificados podem não ser refletidos no banco de dados.Para resolver esse problema, você pode atualizar o banco de dados com sudo atualizoub (que pode levar algum tempo) ou usar o -e opção que lista apenas arquivos existentes no momento localizar O comando é executado (essencialmente equivalente a achar):

locate -e *

ls

Usando o recursivo -R a opção permite o padrão ls comando para produzir resultados semelhantes:

ls -Rlha

GNOMO

Você pode produzir resultados análogos usando o ambiente GNOME Desktop:

Pesquisando por nome

Nos exemplos a seguir, procuraremos todos os arquivos com o .velho extensão.

achar

Porque estamos procurando todos os arquivos, usamos o sudo comando para evitar erros de permissão e iniciar a pesquisa no diretório raiz (/):

sudo find / -iname *.old


Observe que o -Iname Opção Ignore Case, enquanto -nome não.

localizar

A seguir, o -eu Opção ignora o caso:

sudo locate -i *.old


Curiosamente, mesmo com o -e opção, o localizar O comando não encontra o /run/blkid/blkid/tab.old arquivo (enquanto achar faz).

GNOMO

Sem o personagem curinga (*), o aplicativo Gnome Desktop Arquivos fornece essencialmente a mesma informação que o achar comando:

Pesquisando por tamanho

Digamos que gostaríamos de encontrar todos os arquivos maiores que 50 Mib.Para esta tarefa, podemos adicionar o du Comando para a nossa lista de prováveis suspeitos:

du

o du O comando foi projetado especificamente para esta tarefa:

sudo du / -ha --threshold=50M

o -h a opção fornece tamanhos de arquivo padrão (humano) e o -um A opção inclui arquivos e diretórios:


Para suprimir (as quatro) mensagens de erro, você pode usar o 2>&- argumento.Você também pode classificar pelo tamanho do arquivo:

sudo du / -ha --threshold=50M 2>&- | sort -h


A última linha mostra que o disco contém 2,8 gib de dados no total.

achar

A seguir, encontra todos os arquivos (excluindo diretórios) maiores que 50 MIB:

sudo find / -size +50M


Para visualizar o tamanho de cada arquivo em bytes, você pode usar o -ls opção (e 2>&- Para remover as mensagens de erro):

sudo find / -size +50M -ls 2>&-

A 7ª coluna fornece o tamanho de cada arquivo, em bytes.Para visualizar apenas o caminho do arquivo, digite e tamanho, você pode usar o -Printf opção, como mostrado:

sudo find / -size +50M -printf "%p %y %s bytes\n" 2>&- | column -t


o % p Retorna o nome do arquivo, %y o tipo de arquivo, % s o tamanho em bytes e \ n gera um personagem de nova linha (para detalhes, execute Homem encontre).

o coluna -t O comando cria colunas com base em caracteres de espaço em branco.Observe que 140737477885952 Bytes tem pouco menos de 128 PIB, o que está claramente incorreto.A seguir, uma versão mais precisa:

sudo find / -size +50M -printf "%p %y %k KiB\n" 2>&- | column -t


No exposto, %k fornece o tamanho do arquivo em Kib (em oposição a % s bytes).

localizar

Porque o localizar O banco de dados do comando não contém informações de tamanho de arquivo, você não pode listar arquivos maiores que 50 mib apenas com localizar.

GNOMO

O aplicativo de arquivos de desktop do GNOME fornece típico GUI resultados:

Como pode ser visto acima, a classificação da coluna de tamanho não é totalmente útil em relação a encontrar todos os arquivos maiores que 50 MIB.o du ou achar Os comandos são mais apropriados para essa tarefa.

Encontrando arquivos vazios

Vários comandos mencionados acima têm opções especificamente para encontrar arquivos vazios.Vamos examiná -los a seguir.

achar

Para o achar Comando, esta tarefa é direta:

sudo find /tmp -empty -type f,d

Este comando encontra todos os arquivos e diretórios vazios (ou seja,, -Type f, D) dentro do /tmp pasta, como mostrado:


Mas qual é qual?Como acima, podemos usar -Printf e coluna do seguinte modo:

sudo find /tmp -empty -type f,d -printf "%p %y %s bytes\n" | column -t


Observe que cada diretório vazio exige que 4096 bytes (4 kib) existam no sistema de arquivos do Ubuntu.Aqui está um exemplo de um único diretório vazio e um único arquivo vazio:

localizar

Novamente, porque o localizar O banco de dados não contém informações de tamanho de arquivo, não há como encontrar diretamente arquivos/diretórios vazios usando apenas o localizar comando.

GNOMO

O aplicativo de arquivos de desktop do GNOME fornece resultados relativamente não capacitados:

É necessário fazer muitos cliques para identificar todos os arquivos vazios usando o ambiente da área de trabalho do GNOME.

Executando ações em correspondências de arquivo

Agora que sabemos como encontrar arquivos, podemos querer executar ações neles;como excluir tudo *.velho arquivos.

achar

o achar Comando -exec A opção executa o comando fornecido uma vez para cada arquivo correspondente.Por exemplo:

sudo find / -iname "*.old" -exec echo {} \;

Em poucas palavras, isso executa o eco comando em cada um .velho arquivo encontrado.Aqui o {} A sintaxe representa cada arquivo correspondente.Assim, se vmlinux.old é um arquivo correspondente, depois o comando eco vmlluxux.old É executado.O semicolon é usado para indicar o final da sequência de comando seguindo o -exec opção.Como o semicolon tem um significado especial, ele deve ser escapado com os caracteres de barra de barragem (\), do seguinte modo:


Para excluir tudo *.velho arquivos do /Home/Karlito diretório (ou ~ diretório), você pode executar o seguinte comando:

sudo find . -iname "*.old" -exec rm -f {} \;

Podemos ver que todos os arquivos no ~ Diretório foi removido:

localizar

o localizar O comando não tem um -exec opção.No entanto, podemos emular essa funcionalidade usando o Xargs comando:

sudo locate -i "*.old" | xargs -0 echo


o -0 opção permite Xargs Para lidar corretamente aos caracteres de nome do arquivo atípico.

Para remover tudo *.velho arquivos do /Home/Karlito Diretório, você pode executar:

sudo locate -i "/home/karlito/*.old" | xargs rm


Da mesma forma, para remover tudo .velho arquivos listados no localizar Banco de dados do comando (geralmente todos *.velho arquivos no disco), você pode executar:

sudo locate -i "*.old" | xargs rm

GNOMO

Para executar a mesma ação usando o aplicativo de arquivos, primeiro pesquise todos os arquivos com a.velho extensão:

Em seguida, selecione todos os arquivos correspondentes pressionando Ctrl + A. Em seguida, pressione a tecla Excluir e selecione o Excluir botão:

Podemos confirmar a exclusão no prompt de comando da seguinte forma:


Porque o Xargs O comando é rápido, flexível e pode ser usado com muitos outros comandos, geralmente faz sentido usá -lo para a maioria dos cenários.Por exemplo, as seguintes cópias todos os arquivos que contêm "backup" em um diretório chamado "backups" na pasta doméstica do usuário:

sudo find / -type f -iname "*backup*" -print0 | xargs -0 -I {} sh -c 'stat -c "%n %s bytes" {}; cp {} ~/backups'

Uma explicação detalhada de cada comando e opção a seguir:

  • sudo Permite o achar comando para pesquisar sem encontrar a permissão negado erros.
  • achar Um comando que procura arquivos (execute Homem encontre para detalhes).
  • / Inicia a pesquisa no diretório raiz.
  • -Type f Pesquisa por arquivos (e não diretórios).
  • -Iname "*backup*" Ao ignorar o caso, instrui o achar comando para encontrar todos os arquivos contendo "backup" em algum lugar do nome do arquivo.Observe o uso dos dois (*) personagens curinga.
  • -Print0 Formato a saída do achar comando para que possa ser consumido por outros comandos, incluindo Xarg.Em particular, -Print0 Permite que os nomes de arquivos que contêm novas linhas ou outros tipos de espaço em branco sejam interpretados corretamente por programas que podem processar essa entrada.Observe que o -print0 a opção corresponde ao -0 opção do Xargs comando.
  • Xargs Converte sua entrada padrão em argumentos para outros comandos, como o Estado e cp comando.
  • -0 Prepara o Xargs comando para receber entrada que pode conter espaço em branco, marcas de citações ou barragem.
  • -EU A opção "i" capital permite a entrada Xargs para ser usado em mais de um lugar, como via {} símbolo.
  • sh -c Isso chama um intérprete de comando separado (shell) e executa os comandos passados para ele.Nesse caso, 'stat -c " %n %s bytes" {};cp {} ~/backups '.Este segundo shell permite Xargs Para executar vários comandos usando o {} símbolo.
  • stat -c " %n %s bytes" {} Exibe o nome %n e tamanho % s do arquivo contido no {} token (em bytes).
  • ; O semicolon permite que dois ou mais comandos sejam executados na mesma linha.
  • cp {} ~/backups Copia o dado {} arquivo para o ~/backups diretório.

Juntar tudo isso resulta em produção semelhante ao seguinte:

No exposto, podemos ver todos os arquivos que teoricamente copiaram para ~/backups.É teórico, pois nem todos os arquivos foram realmente copiados:

Este é um ponto importante - não houve problemas em relação à exibição Estado informações relacionadas, mas havia problemas para o cp comando (que não são relatados).

Refinando pesquisas com o comando Grep

Em seguida, pesquisaremos o conteúdo dos arquivos correspondentes para encontrar uma ou mais palavras -chave.Para começar, examinaremos todos *.registro arquivos para ocorrências de aviso.Para fazer isso, usamos o onipresente grep comando:

sudo find / -iname '*.log' -type f -print0 | xargs -0 grep warning

Executando os comandos antes do tubo ( | ) O operador retorna a lista esperada de *.registro arquivos.No entanto, a execução de toda a linha de comando retorna por permissão do arquivo negado erros:


Isso é porque o grep O comando também requer sudo elevação.Assim, a seguinte linha de comando produz os resultados desejados (ambos -Iname e -eu ignorar caso):

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo -i grep warning

Para encontrar tudo *.registro arquivos contendo aviso, críticoe/ou erro, podemos usar o lógico ou ( | ) Operador, que deve ser escapado para que não seja confundido com o operador de tubo padrão:

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo grep -l -i 'warning\|critical\|error'

A opção "L" em minúsculas -eu Exibe a lista de arquivos correspondentes e não o conteúdo associado:

Conclusão

Este tutorial comparou e contrastou várias maneiras de encontrar arquivos no Ubuntu 22.04 LTS.Ele também forneceu técnicas para executar comandos nos arquivos encontrados.Os sistemas operacionais semelhantes ao UNIX, incluindo o Ubuntu, oferecem um ambiente de linha de comando extremamente rico para ajudá-lo a gerenciar seu computador/servidor Ubuntu.

Escrito por Karlito Bonnevie  /  Junho 20, 2022