User Tools

Site Tools


wiki:linux:comandos:comando_globbing

Exemplos de Globbing e Redirecionadores no Linux

Nível Básico

  • Listar todos os arquivos `.txt` no diretório atual:
    1. ls *.txt
    2. Usa o padrão `*.txt` para listar todos os arquivos com a extensão `.txt`.
  • Concatenar todos os arquivos de log `.log` e exibir no terminal:
    1. cat *.log
    2. Usa o *globbing* `*.log` para combinar todos os arquivos `.log` e exibir o conteúdo.
  • Excluir todos os arquivos que começam com “temp” no diretório atual:
    1. rm temp*
    2. Usa o padrão `temp*` para remover todos os arquivos cujo nome começa com “temp”.
  • Mover todos os arquivos que terminam com `.bak` para um diretório específico:
    1. mv *.bak /backup/
    2. Usa `*.bak` para mover todos os arquivos com extensão `.bak` para o diretório `/backup/`.
  • Redirecionar a saída de um comando para um arquivo:
    1. ls -l > lista_de_arquivos.txt
    2. Salva a saída detalhada do comando `ls` no arquivo `lista_de_arquivos.txt`.

Nível Intermediário

  • Contar todas as linhas de arquivos que começam com “relatorio”:
    1. wc -l relatorio*
    2. Conta o número de linhas em todos os arquivos que começam com “relatorio”.
  • Copiar todos os arquivos `.jpg` e `.png` para o diretório `imagens/`:
    1. cp *.{jpg,png} imagens/
    2. Usa *globbing* para copiar todos os arquivos `.jpg` e `.png` para o diretório `imagens/`.
  • Listar arquivos cujo nome contém um número (ex.: `arquivo1.txt`, `dados2023.csv`):
    1. ls *[0-9]*
    2. Lista todos os arquivos cujo nome contém um número (qualquer número entre 0 e 9).
  • Redirecionar a saída de um comando para dois arquivos simultaneamente:
    1. echo "Dados importantes" | tee arquivo1.txt arquivo2.txt
    2. Escreve a mensagem “Dados importantes” em dois arquivos ao mesmo tempo.
  • Buscar por arquivos `.conf` e redirecionar o resultado para um arquivo:
    1. find /etc -name "*.conf" > lista_conf.txt
    2. Usa o comando `find` para procurar arquivos `.conf` no diretório `/etc` e salva a lista em `lista_conf.txt`.

Nível Avançado

  • Exibir os 5 arquivos `.log` mais recentes, ordenados por data:
    1. ls -lt *.log | head -n 5
    2. Lista todos os arquivos `.log`, ordenados por data de modificação, e exibe apenas os 5 mais recentes.
  • Excluir todos os arquivos exceto aqueles que começam com “backup” e terminam em `.tar.gz`:
    1. rm !("backup*.tar.gz")
    2. Remove todos os arquivos no diretório atual, exceto os que seguem o padrão “backup*.tar.gz” (requer que o *extglob* esteja habilitado).
  • Buscar por palavras-chave em vários arquivos de log e redirecionar os erros para um arquivo separado:
    1. grep "erro" *.log > erros.txt 2> grep_erros.log
    2. Procura por “erro” em todos os arquivos `.log` e redireciona os erros do comando `grep` para `grep_erros.log`.
  • Copiar todos os arquivos `.sh` que foram modificados nos últimos 7 dias para o diretório `scripts_backup/`:
    1. find . -name "*.sh" -mtime -7 -exec cp {} scripts_backup/ \;
    2. Encontra todos os arquivos `.sh` modificados nos últimos 7 dias e os copia para o diretório `scripts_backup/`.
  • Redirecionar tanto a saída padrão quanto os erros para um arquivo de log:
    1. comando > saida.log 2>&1
    2. Redireciona a saída padrão do `comando` para `saida.log` e também redireciona os erros para o mesmo arquivo.

Nível Especializado

  • Combinar múltiplos arquivos `.csv` em um só, preservando o cabeçalho apenas do primeiro arquivo:
    1. awk '(NR == 1) || (FNR > 1)' *.csv > combinado.csv
    2. Usa `awk` para combinar todos os arquivos `.csv`, preservando o cabeçalho do primeiro arquivo e excluindo os cabeçalhos dos arquivos subsequentes.
  • Compressão paralela de todos os arquivos `.log` maiores que 100 MB:
    1. find . -name "*.log" -size +100M -print0 | xargs -0 -P4 gzip
    2. Encontra arquivos `.log` maiores que 100 MB e os comprime em paralelo usando 4 threads.
  • Comparar o conteúdo de dois diretórios, exibindo as diferenças em arquivos `.txt`:
    1. diff <(ls dir1/*.txt) <(ls dir2/*.txt)
    2. Usa `diff` para comparar o conteúdo de dois diretórios com arquivos `.txt`, exibindo as diferenças.
  • Excluir arquivos em um diretório que não estão em um diretório de backup correspondente:
    1. rsync -av --delete /origem/ /backup/
    2. Usa `rsync` para sincronizar os arquivos entre dois diretórios e remover do diretório de destino arquivos que não existem mais no diretório de origem.
  • Executar um comando em todos os arquivos `.conf`, concatenando as saídas em um único arquivo:
    1. for file in *.conf; do cat "$file"; done > combinado_conf.txt
    2. Executa um `cat` em todos os arquivos `.conf` e concatena o conteúdo no arquivo `combinado_conf.txt`.
wiki/linux/comandos/comando_globbing.txt · Last modified: by Wiki Administrator