Costuma-se definir arquivo como o lugar onde gravamos nossos dados. Em outros sistemas operacionais é feita uma distinção entre arquivos, diretórios, dispositivos e outros componentes do sistema. No
GNU/Linux, entretanto, tudo aquilo que pode ser manipulado pelo sistema é tratado como arquivo.
Mas, se tudo é arquivo, como o sistema operacional faz a distinção entre arquivo regular, diretório, dispositivo, processo, etc? Muito simples: todo arquivo tem o que é chamado cabeçalho, que contém informações como: tipo, tamanho, data de acesso, modificação, etc. Através desse cabeçalho o GNU/Linux sabe então quando se trata de arquivo regular, diretório, dispositivo, e assim por diante.
Tipos de Arquivos
Os tipos de arquivos existentes num sistema GNU/Linux são os seguintes:
- Arquivo regular: tipo comum que contém dados somente. Os arquivos regulares podem ser dos mais variados tipos, guardando os mais diferentes tipos de informações. Existem arquivos de áudio, vídeo, imagem, texto, enfim. Os arquivos se dividem em 2 (duas) categorias principais:
- Binários: arquivos binários são compostos por bits 1 e 0 e só podem ser interpretados pelo sistema operacional, sendo incompreensíveis por nós humanos. Se um arquivo binário for aberto por um editor de textos, serão exibidos vários símbolos estranhos. Programas e bibliotecas são exemplos de arquivos binários;
- Texto: arquivos do tipo texto são compostos por informações em forma de texto, que podem ser entendidas pelo usuário comum. Arquivos desse tipo não necessariamente contém texto propriamente dito. Quando se diz que um arquivo é do tipo texto estamos querendo dizer que, se o abrirmos num editor de texto, serão exibidos informações legíveis (ainda que possam não fazer muito sentido).
- Diretórios: os diretórios são utilizados para separar um grupo de arquivos de outros. Um diretório pode conter arquivos e outros diretórios, que serão chamados subdiretórios;
- Dispositivos: todo componente de hardware instalável é chamado dispositivo. Placas de vídeo, som, rede, drives de CD-ROM, tudo o que se liga na interface USB, memória RAM, são dispositivos. Os dispositivos podem ser:
- De bloco: dispositivos de bloco utilizam buffer para leitura/gravação. Geralmente são unidades de disco, como HD's, CD's, etc;
- De caracter: esses dispositivos não utilizam buffer para leitura/gravação. A maioria dos dispositivos PCI e outros dispositivos como impressoras, mouse, etc. são do tipo caracter;
- Fifo: trata-se de um canal de comunicação, através do qual pode-se ver os dados que estão trafegando por um dispositivo;
- Links: os links são arquivos utilizados para fazer referência a um outro arquivo localizado em outro local. Em outras palavras, são atalhos. Os links podem ser de 2 (dois) tipos:
- Simbólicos: fazem uma referência ao arquivo através de seu endereço lógico no disco ou memória. São os links mais comuns;
- Absolutos: fazem referência ao arquivo através do seu endereço físico no disco rígido ou memória.
- FIFO: canal de comunicação, utilizado para direcionar os dados produzidos por um processos para um outro processo.
Arquivos podem conter diferentes tipos de informações. Cada tipo de informação requer um método específico de trabalho. Assim, um arquivo de imagem não pode ser lido por um programa de reprodução de áudio, porque os dados de um arquivo de imagem são organizados de forma totalmente diferente da de um arquivo de áudio, e o programa em questão só é capaz de lidar com arquivos de áudio.
Tendo isso em vista, é necessário que o sistema operacional e os demais programas possam diferenciar os diversos tipos de arquivos disponíveis, para evitar que um programa tente manipular um tipo de arquivo que não suporta.
O GNU/Linux faz essa diferenciação através da leitura do cabeçalho do arquivo. Assim, a extensão do arquivo geralmente não importa para o sistema operacional, mas é usada tão somente para fácil identificação do usuário, motivo pelo qual é muito comum encontrarmos arquivos sem extensão no GNU/Linux.
Nomes de arquivos
Os nomes de arquivos no GNU/Linux podem ter até 255 caracteres, podendo utilizar espaços e acentos. Há exceção somente quanto ao uso dos caracteres especiais / \ | " * ? < > ! `.
Um ponto muito importante que deve ser frisado é que o GNU/Linux é case sensitive, ou seja, diferencia letras maiúsculas de minúsculas. Sendo assim, os arquivos file.iso e File.iso são diferentes para o GNU/Linux. Sendo assim, quando for se referir a um arquivo, tenha a certeza de escrever com a capitulação correta.