Introdução
No Windows ou no macOS, você está acostumado a usar as extensões para saber o que é um arquivo. Se ele termina em .jpg, é uma imagem. Se termina em .exe, é um programa.
No Linux, porém, os nomes de arquivo são apenas rótulos. E, assim como na vida real, os rótulos podem estar errados. Você pode pegar um pote de sal e escrever “Açúcar” no rótulo, mas o conteúdo continuará com gosto de sal.
O Linux não confia no rótulo, ou seja, no nome do arquivo. Em vez disso, ele examina o conteúdo para descobrir o que o arquivo realmente é.
Isso reflete uma ideia mais ampla do Unix: o significado geralmente vem da forma como os dados são estruturados e usados, não apenas do nome. As extensões podem servir como dicas convenientes para as pessoas, mas não são a fonte definitiva da verdade.
Neste laboratório, você usará o comando file para identificar a verdadeira natureza dos arquivos, independentemente dos nomes que eles tenham.
Essa habilidade é importante no trabalho real de operações. Você pode encontrar arquivos baixados, logs, dumps, scripts ou anexos suspeitos com nomes enganosos. Antes de abri-los, executá-los ou editá-los, é recomendável identificar o que eles realmente são.
Verificar um arquivo de texto
Vamos começar com um arquivo que é exatamente o que afirma ser.
Primeiro, navegue até o diretório do projeto:
cd ~/project
ls -l
Você verá welcome.txt. O rótulo .txt sugere que ele é um arquivo de texto. Mas lembre-se: não confiamos nos rótulos.
Peça ao comando file para examiná-lo:
file welcome.txt
Você verá uma saída semelhante a esta:
welcome.txt: ASCII text
O comando file verificou o conteúdo e confirmou: “Sim, este é um texto ASCII”.
Comandos como cat, less e editores funcionam melhor quando você já sabe se um arquivo é de texto. O comando file ajuda você a tomar essa decisão com segurança.
Isso significa que é seguro ler o arquivo. Você pode usar comandos como cat:
cat welcome.txt
Verificar um arquivo binário
Programas do sistema, como ls, mkdir ou cat, não são arquivos de texto. Eles são arquivos binários, escritos em uma linguagem que apenas o processador do computador entende.
Vamos examinar o próprio comando ls. Ele está localizado na pasta /bin.
Peça ao comando file para identificá-lo:
file /bin/ls
A saída pode parecer assustadora, mas é muito informativa:
/bin/ls: ELF 64-bit LSB pie executable, x86-64, ...
Não entre em pânico. Veja a tradução:
- ELF: formato padrão de programas do Linux, semelhante ao
.exedo Windows. - executable: um programa que você pode executar.
ELF significa Executable and Linkable Format, o formato binário padrão usado por muitos sistemas Linux. Você não precisa memorizar o nome completo, mas é útil reconhecer ELF como “isto é um executável do Linux”.
A principal conclusão é que file informou que este arquivo é um executável. Se você tentasse executar cat /bin/ls, sua tela seria preenchida por símbolos estranhos. Saber que um arquivo é binário serve de alerta: “Não leia este arquivo; execute-o”.
Identificar arquivos desconhecidos
Agora é hora do trabalho de investigação. Há dois arquivos suspeitos na pasta do projeto: mystery_file e fake_image.jpg.
Caso 1: O arquivo sem nome
mystery_file não tem extensão. Ele é um arquivo de texto? Um programa?
Vamos testá-lo:
file mystery_file
Resultado:
mystery_file: PNG image data, ...
Aha! Ele é uma imagem PNG. Mesmo sem uma etiqueta no nome, o Linux identificou a assinatura interna de uma imagem PNG.
Caso 2: O mentiroso
Agora examine fake_image.jpg. O rótulo diz “Imagem JPEG”. Mas será que é mesmo?
file fake_image.jpg
Resultado:
fake_image.jpg: ASCII text
É uma mentira! Ele é apenas um arquivo de texto.
Como sabemos que é texto, podemos lê-lo com segurança:
cat fake_image.jpg
Essa habilidade específica — identificar arquivos pelo conteúdo, e não pelo nome — é o que diferencia usuários experientes de Linux dos iniciantes.
Essa também é uma das razões pelas quais o Linux depende menos de extensões do que alguns sistemas operacionais para desktop. As extensões são convenções úteis, mas o sistema geralmente consegue obter mais informações examinando o próprio arquivo.
Resumo
Você aprendeu a olhar além do rótulo e descobrir a verdadeira natureza dos arquivos.
file filename: o comando que revela a verdade.- As extensões podem mentir:
.jpgnem sempre significa imagem. - Sem extensão? Sem problema: o Linux não precisa de extensões para saber o que é um arquivo.
Agora você está preparado para lidar com qualquer arquivo desconhecido que encontrar!



