Conteúdo de arquivos e comparação

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo a este laboratório prático sobre o trabalho com arquivos no Linux! Se você é novo no Linux, não se preocupe. Vamos orientar você cuidadosamente em cada etapa. Neste laboratório, você aprenderá a visualizar o conteúdo de arquivos, consultar partes específicas dos arquivos e comparar arquivos. Essas são habilidades fundamentais que ajudarão você a navegar pelo sistema de arquivos do Linux e entendê-lo.

Exibir o conteúdo de um arquivo

Primeiro, abra um terminal na área de trabalho ou mude para a aba do terminal no ambiente do laboratório.

Captura de tela da janela do terminal

Depois de abrir o terminal, você verá um prompt de comando, que normalmente termina com o símbolo $. É nesse local que você digitará os comandos.

Agora, use o comando cat para exibir o conteúdo de um arquivo:

  1. No terminal, digite o comando a seguir e pressione Enter:
cat /tmp/hello

Neste comando, /tmp/hello é o caminho do arquivo que você quer visualizar. /tmp é um diretório (pasta) do sistema, e hello é o nome do arquivo nesse diretório.

  1. Depois de pressionar Enter, você deverá ver o conteúdo do arquivo:
Hi,
I am Labby!

Esse é todo o conteúdo do arquivo /tmp/hello. O comando cat o exibiu no terminal.

Exibir o conteúdo de um arquivo com números de linha

Agora, use o comando cat novamente, mas desta vez adicione números de linha à saída.

  1. No terminal, digite o comando a seguir e pressione Enter:
cat -n /tmp/hello

O -n é uma opção, também chamada de flag. Ela instrui o cat a numerar todas as linhas da saída.

  1. Agora você deverá ver o conteúdo do arquivo com os números de linha:
     1 Hi,
     2 I am Labby!

Isso pode ser muito útil ao trabalhar com arquivos mais longos e precisar consultar linhas específicas.

Exibir as primeiras linhas de um arquivo

Em seguida, use o comando head. Como o próprio nome sugere, head serve para visualizar o início, ou “cabeçalho”, de um arquivo.

  1. No terminal, digite o comando a seguir e pressione Enter:
head -n1 /tmp/hello

Nesse comando, -n1 é uma opção que instrui o head a mostrar apenas a primeira linha. Você pode trocar 1 por qualquer número para exibir essa quantidade de linhas.

  1. Você deverá ver esta saída:
Hi,

Essa é apenas a primeira linha do arquivo. Por padrão, sem a opção -n1, head exibiria as 10 primeiras linhas do arquivo.

Visualizar os primeiros bytes de um arquivo

Agora, use o comando head novamente, mas desta vez para visualizar uma quantidade específica de bytes a partir do início de um arquivo.

  1. No terminal, digite o comando a seguir e pressione Enter:
head -c1 /tmp/hello

A opção -c1 instrui o head a mostrar apenas o primeiro byte (caractere) do arquivo. Assim como em -n, você pode trocar 1 por qualquer número para visualizar essa quantidade de bytes.

  1. Você deverá ver esta saída:
H

Esse é apenas o primeiro caractere do arquivo. Em arquivos de texto, cada caractere normalmente ocupa um byte.

Exibir as últimas linhas de um arquivo

Agora, passe ao comando tail. Como você pode imaginar, tail é o oposto de head: ele exibe o final de um arquivo.

  1. No terminal, digite o comando a seguir e pressione Enter:
tail -n1 /tmp/hello

Assim como em head, a opção -n1 instrui o tail a mostrar apenas uma linha — neste caso, a última linha do arquivo.

  1. Você deverá ver esta saída:
I am Labby!

Essa é a última linha do arquivo. Sem a opção -n1, tail exibiria as 10 últimas linhas por padrão.

Visualizar os últimos bytes de um arquivo

Assim como fizemos com head, podemos usar tail para exibir uma quantidade específica de bytes a partir do final de um arquivo.

  1. Primeiro, tente visualizar o último byte. No terminal, digite o comando a seguir e pressione Enter:
tail -c1 /tmp/hello

Talvez você não veja nenhuma saída. Isso acontece porque o último caractere provavelmente é um caractere de nova linha, que não é visível.

  1. Agora, tente visualizar os dois últimos bytes. Digite o comando a seguir e pressione Enter:
tail -c2 /tmp/hello
  1. Agora você deverá ver:
!

A opção -c2 instrui o tail a mostrar os dois últimos bytes (caracteres) do arquivo. Neste caso, ela mostra o ponto de exclamação, que é o último caractere visível do arquivo.

Comparar arquivos

Agora, você aprenderá a usar o comando diff para comparar dois arquivos e verificar as diferenças entre eles.

  1. Primeiro, confirme que você está no diretório correto (pasta). Digite o comando a seguir e pressione Enter:
cd ~/project

Esse comando muda o diretório atual para a pasta project dentro do seu diretório pessoal. O símbolo ~ é um atalho para o seu diretório pessoal.

  1. Agora, compare dois arquivos. Digite o comando a seguir e pressione Enter:
diff file1 file2

Esse comando instrui o diff a comparar o conteúdo de file1 e file2.

  1. Você deverá ver uma saída semelhante a esta:
1c1
< this is file1
---
> this is file2

Veja o que essa saída significa. O comando diff produz uma saída que descreve quais alterações são necessárias para tornar o primeiro arquivo idêntico ao segundo. Não importa qual arquivo foi criado ou modificado primeiro; o diff compara apenas o conteúdo dos arquivos no momento em que o comando é executado.

  • 1c1: indica que a linha 1 do primeiro arquivo precisa ser changed (alterada) para corresponder à linha 1 do segundo arquivo.
  • < this is file1: o símbolo < indica uma linha do primeiro arquivo (file1).
  • ---: é um separador entre as linhas de file1 e file2.
  • > this is file2: o símbolo > indica uma linha do segundo arquivo (file2).

Em termos simples, diff mostra que o conteúdo da linha 1 é diferente nos dois arquivos. Para fazer file1 corresponder a file2, a linha "this is file1" precisaria ser substituída por "this is file2".

Comparar diretórios

Por fim, use o comando diff para comparar diretórios inteiros.

  1. No terminal, digite o comando a seguir e pressione Enter:
diff -r ~/Desktop ~/Code

A opção -r instrui o diff a comparar recursivamente também os subdiretórios. ~/Desktop e ~/Code são os caminhos dos dois diretórios que estamos comparando.

  1. Você poderá ver uma saída semelhante a esta:
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop

Essa saída mostra que o diretório Desktop contém quatro arquivos que não estão no diretório Code.

Resumo

Parabéns! Você concluiu o laboratório Conteúdo de arquivos e comparação. Veja o que você aprendeu:

  1. Você usou cat para visualizar todo o conteúdo de um arquivo.
  2. Você aprendeu a usar cat -n para visualizar o conteúdo de arquivos com números de linha.
  3. Você usou head para visualizar o início de um arquivo, tanto por linhas quanto por bytes.
  4. Você usou tail para visualizar o final de um arquivo, tanto por linhas quanto por bytes.
  5. Você aprendeu a usar diff para comparar o conteúdo de arquivos.
  6. Por fim, você usou diff -r para comparar diretórios inteiros.

Esses comandos são ferramentas fundamentais no Linux. À medida que continuar trabalhando com Linux, você usará esses comandos com frequência para inspecionar e comparar arquivos e diretórios.

Lembre-se: se você esquecer como usar um comando, poderá digitar man seguido do nome do comando — por exemplo, man cat — para consultar a página de manual correspondente. Ela fornecerá informações detalhadas sobre todas as opções disponíveis para cada comando.

Continue praticando esses comandos com diferentes arquivos e diretórios para se familiarizar com eles. Quanto mais você os usar, mais natural será trabalhar com eles!