No mundo Windows, a extensão de um arquivo diz o tipo que ele é. Por exemplo, um .doc é um documento de texto do Word, .txt é um arquivo de texto puro do Bloco de Notas, etc. No Linux, apesar de também trabalhar com extensões, o sistema operacional tem outra forma de descobrir o tipo de arquivo. E o programa "file" mostra isso muito bem.
$ file 20131101.txt
20131101.txt: UTF-8 Unicode text
20131101.txt: UTF-8 Unicode text
Acima, o arquivo 20131101.txt é um arquivo de texto unicode utf-8.
$ file ipv6-02.jpeg
ipv6-02.jpeg: JPEG image data, JFIF standard 1.01
ipv6-02.jpeg: JPEG image data, JFIF standard 1.01
Agora um arquivo jpeg.
$ file instalar.sh
instalar.sh: Bourne-Again shell script, UTF-8 Unicode text executable
instalar.sh: Bourne-Again shell script, UTF-8 Unicode text executable
Um script bash executável.
$ file disco1
disco1: data
disco1: data
Um arquivo do tipo data.
$ file Livro.pdf
Livro.pdf: PDF document, version 1.4
Livro.pdf: PDF document, version 1.4
Um pdf.
$ file teste.iso
teste.iso: data
teste.iso: data
Outro data.
Agora, se eu renomear o arquivo Livro.pdf para Livro.txt, o que será que o "file" vai mostrar?
$ cp Livro.pdf Livro.txt
$ file Livro.txt
Livro.txt: PDF document, version 1.4
$ file Livro.txt
Livro.txt: PDF document, version 1.4
Apesar do arquivo ter extensão .txt, vemos que ele é, nas verdade, um pdf.