Arquivos no GNU/Linux
Os arquivos são utilizados para gravar dados. Eles, podem conter um texto, uma música, programa, planilha, etc.
Nomes e extensões
Para facilitar a identificação, cada arquivo deve ter um nome — lembrando que o GNU/Linux é case sensitive. No entanto, muitas vezes, não é possível localizar ou saber como utilizá-lo somente pelo nome, por conta disso, existem as extensões.
A extensão são os caracteres separados do nome do arquivo por um .
, assim: nome_arquivo.extensao
. O uso de extensões não é obrigatório na maioria das distribuições GNU/Linux, mas é conveniente o seu uso para determinar facilmente o tipo de arquivo e qual programa utilizar para abri-lo.
No GNU/Linux, quando o primeiro caractere do nome é um .
significa que o arquivo em questão é oculto. Arquivos ocultos são ignorados, ou seja, eles existem, mas não são listados — a não ser que seja explicitado.
Tipos de arquivos
No GNU/Linux, existem sete tipos de arquivos, são eles:
- Arquivo regular: É o tipo mais comum de arquivo que se pode encontrar em um sistema GNU/Linux. Existem dois tipos de arquivos regulares:
- Arquivo de texto: Seu conteúdo é compreendido pelas pessoas. Ele pode ser uma carta, um script, um programa de computador escrito pelo programador, arquivo de configuração, etc.
- Arquivo binário: Seu conteúdo somente pode ser entendido por computadores. Ele é gerado por um arquivo de programa através de um processo chamado de compilação.
- Arquivo de diretório: Armazena arquivos de qualquer tipo, inclusive outros diretórios.
- Arquivo de dispositivo: São utilizados para gerenciar os dispositivos de entrada e saída. Eles se subdividem em dois grupos:
- Arquivo de caractere: Nele, normalmente, os dados são lidos e escritos diretamente no dispositivo, dispensando o uso de buffers.
- Arquivos de bloco: Nele, as operações de entrada e saída são realizadas de modo aleatório, em blocos, fazendo o uso de buffers intermediários.
- Arquivo de socket: Permite a comunicação entre dois processos que compartilham dados. Ele permite a comunicação até mesmo entre sistemas operacionais diferentes.
- Arquivo pipe: Permite a comunicação entre dois processos executados no mesmo sistema operacional.
- Arquivo de link simbólico: Armazena uma representação textual do caminho para um arquivo referenciado.
Diretórios no GNU/Linux
O diretório é um arquivo utilizado para armazenar conjuntos de arquivos. Com os diretórios é possível manter os arquivos organizados.
No GNU/Linux não é permitido a existência de dois arquivos com o mesmo nome no mesmo diretório. As exceção são:
- Arquivos de mesmo nome com extensões diferentes.
- Dois arquivos com o mesmo nome, e até com a mesma extensão, com um deles oculto.
Estrutura de diretórios do GNU/Linux
O sistema GNU/Linux possui uma estrutura básica de diretórios. Essa estrutura também é conhecida como Árvore de Diretórios, porque é parecida com uma árvore de cabeça para baixo. Cada diretório do sistema tem seus respectivos arquivos que são armazenados conforme regras definidas pela Filesystem Hierarchy Standard (FHS) da seguinte forma:
/
: Diretório principal do sistema. Dentro dele estão todos os diretórios do sistema./bin
: É reservado para gravar comandos que serão utilizados por todos os usuários./boot
: Contém os arquivos necessários para a inicialização do sistema./cdrom
: Este diretório não faz parte do padrão de hierarquia FHS, porém ele ainda é encontrado em algumas distribuições GNU/Linux. É utilizado como local temporário para CDs e DVDs inseridos no computador — porém, o local padrão para essas mídias é o diretório/media
./dev
: Contém arquivos gerados pelos dispositivos de hardware, como processador, placa de vídeo, leitor de mídia etc./etc
: Guarda a maioria dos arquivos essenciais do sistema operacional do computador local, como configuração usados para controlar uma operação ou programa./home
: Local destinado para os arquivos dos usuários, com exceção do root./lib
: Contém diretórios e links simbólicos compartilhados pelos programas do sistema e módulos do kernel./lost+found
: Local para a gravação de arquivos corrompidos, recuperados após uma verificação do sistema de arquivos — esse tipo de verificação ocorre na primeira reinicialização após um travamento no sistema./media
: Ponto de montagem de dispositivos removíveis como pendrives, CDs, Blu-Ray etc./mnt
: Ponto de montagem de subdiretórios temporários de dispositivos não removíveis e arquivos, como imagens ISO./opt
: É uma área reservada para instalações de pacotes de aplicações que otimizam o funcionamento de determinado programa ou acrescentam novos recursos./proc
: É usado pelo kernel para guardados registros de desempenho e status de processos./root
: Diretório padrão do usuário root./run
: Fornece às aplicações um local para armazenamento de arquivos temporários que, diferentemente dos arquivos armazenados no/tmp
, em caso de exclusão causam problemas às aplicações que os utilizam./sbin
: Reúne arquivos binários acionados pelo sistema em si ou pelo root em processos de manutenção./srv
: Possui dados que são utilizados por serviços armazenados, como web servers./sys
: Sistema de arquivos do kernel, que facilita a troca de informações entre os programas que rodam no espaço do kernel, como os drivers, com os programas que rodam no espaço do usuário — por isso, esse diretório é usado por diversos programas./tmp
: Diretório para armazenamento de arquivos temporários criados por programas./usr
: Contém a maior parte dos programas. Normalmente acessível somente como leitura./var
: Aqui são armazenados logs e arquivos variados que normalmente seriam escritos em/usr
.
Manipulação de arquivos
Abaixo estão listados comandos úteis para a manipulação de arquivos.
ls
- Utilidade: Listar os arquivos de um diretório.
- Estrutura:
ls
[opções]
[caminhos|arquivos]
. - Opções:
-a
: Lista todos os arquivos, inclusive os ocultos, de um diretório.-l
: Lista permissões, donos, grupos, tamanho em bytes e data de modificação dos arquivos.-lh
: Edita o tamanho dos arquivos mostrando pela opção-l
, ou seja, o tamanho dos arquivos serão exibidos em Kbytes, Mbytes ou Gbytes — o que o GNU/Linux julgar mais conveniente.
- Macetes:
ls -lha
é uma concatenação das opções-l
,-h
,-a
. Quando se trata de listagem, talvez, seja o comando mais completo.- É possível listar vários diretório com um único comando. Por exemplo, o comando
ls . /
retornará a listagem do diretório atual e do diretório raiz do GNU/Linux.
cd
- Utilidade: Entrar em um diretório. O usuário precisa ter a permissão de execução para entrar no diretório.
- Estrutura:
cd
[caminho|diretório]
. - Macetes:
cd /
: Levará ao diretório raiz do GNU/Linux.cd ~
: Levará para o diretório padrão do usuário que está operando o GNU/Linux.cd -
: Levará ao último diretório acessado.cd ..
: Levará à um diretório a cima.cd ../ [caminho|diretório]
: Levará à um diretório a cima e entrará, caso exista, no diretório do caminho informado.
pwd
- Utilidade: Mostrar o nome e caminho do diretório atual.
mkdir
- Utilidade: Criar um diretório no GNU/Linux.
- Estrutura:
mkdir
[opções]
[caminhos|diretórios]
. - Opções:
-p
: Caso os diretórios dos níveis acima não existam, eles também serão criados.-v
: Mostra uma mensagem para cada diretório criado.
- Macetes:
- Para criar um novo diretório, o usuário deve ter permissão de gravação.
- É possível criar vários diretório com um único comando. Por exemplo, o comando
mkdir diretorio1 diretório2
criará dois diretórios — odiretorio1
e odiretório2
.
rmdir
- Utilidade: Remover um diretório vazio do GNU/Linux.
- Estrutura:
rmdir
[caminhos|diretórios]
. - Macetes:
- Para remove um diretório, o usuário deve ter permissão de gravação sobre ele.
- É possível remover vários diretório com um único comando. Por exemplo, o comando
mkdir diretorio1 diretório2
removerá tanto odiretorio1
quanto odiretório2
— desde que ambos estejam vazios. - Para remover um diretório que contém arquivos, basta usar o comando
rm
com a opção-r
seguida pelo diretório que deseja remover.
cat
- Utilidade: Mostrar o conteúdo de um arquivo binário ou de texto.
- Estrutura:
cat
[opções]
[caminhos|arquivos]
. - Opções:
-n
: Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado.
touch
- Utilidade: Criar um arquivo regular em branco
- Estrutura:
touch
[caminhos|arquivos]
. - Macetes:
- É possível criar vários arquivos com um único comando. Por exemplo, o comando
touch arquivo1 arquivo2
criará dois arquivos — oarquivo1
e oarquivo2
. - Para escrever algo no arquivo basta utilizar um editor de texto como por exemplo o Nano ou o Vim.
- É possível criar vários arquivos com um único comando. Por exemplo, o comando
rm
- Utilidade: Remover arquivos.
- Estrutura:
rm
[opções]
[caminhos|diretórios]
. - Opções:
-i
: Pergunta antes de remover um arquivos.-v
: Mostra os arquivos a medida que são removidos.-r
: Remove arquivos em subdiretórios e em seguida o subdiretório.
- Macetes:
rm -r
[caminho|diretório]
é utilizado para remover um diretório.
cp
- Utilidade: Copiar arquivos.
- Estrutura:
cp
[opções]
[origem]
[destino]
- Opções:
-r
Copia arquivos dos diretórios e subdiretórios da origem para o destino.-v
: Mostra os arquivos a medida que são copiados.-l
: Faz o link simbólico no destino ao invés de copiar os arquivos.
mv
- Utilidade: Mover arquivos.
- Estrutura:
mv
[opções]
[origem]
[destino]
- Opções:
-v
: Mostra os arquivos a medida que são movidos.
find
- Utilidade: Buscar arquivos.
- Estrutura:
find
[diretorio]
[opções]
[expressão]
- Opções:
-atime
: Procurar arquivos acessados dentro de um intervalo de dias.-mtime
: Procurar arquivos modificados dentro de um intervalo de dias.-ctime
: Procurar arquivos criados dentro de um intervalo de dias.-name
: Procura um arquivo pelo nome — é case sensitive.-iname
: Procura um arquivo pelo nome — não é case sensitive.-user
: Procura arquivos pelo usuário.-goup
: Procura arquivos pelo grupo.-perm
: Procura arquivos pela permissão.-type
: Procura um arquivo pelo tipo. Os seguintes tipos são aceitos:f
: arquivo regular;d
: diretório;b
: bloco;c
: caractere;l
: link simbólico;p
: pipe;s
: socket.
- Macetes:
- Para fazer buscas com o
-atime
,-mtime
ou-ctime
é interessante não somente indicar os dias, mas também especificar o intervalo. O-
significa "a menos de", enquanto o+
significa "a mais de". Por exemplo, o comandofind / -atime -2
busca arquivos acessados a menos de dois dias. - É possível concatenar as opções e fazer buscas mais refinadas. Por exemplo:
find / -iname teste -user root
.
- Para fazer buscas com o
Referências globais
Coringas, ou referências globais, é um recurso usado para especificar um ou mais arquivos do sistema de uma só vez. Este recurso permite fazer a filtragem do que será listado, copiado, apagado, buscados e etc. No GNU/Linux são usados 4 tipos de coringas, são eles:
*
: Faz referência a um nome completo ou restante de um arquivo.?
: Faz referência a uma letra naquela posição.[ ]
: Faz referência a uma faixa de caracteres de um arquivo. Os padrões aceitos estão listados abaixo — caso qualquer um deles for precedido por um^
significa que a expressão deve desconsiderar os caracteres indicados:[a-z][0-9]
: Faz referência aos caracteres dea
atéz
seguido de um caractere de0
até9
.[a,z][1,0]
: Faz referência aos caracteresa
ez
seguido de um caractere1
ou0
naquela posição.[a-z,1,0]
: Faz referência ao intervalo de caracteres dea
atéz
ou1
ou0
naquela posição.
{ }
: Expande e gera strings para pesquisa de padrões de um arquivo/diretório.X{ab,01}
: Faz referência a sequencia de caracteresXab
ouX01
.X{a-z,10}
: Faz referencia a sequencia de caracteresXa-z
eX10
.
Compactadores
Compactadores são programas que diminuem o tamanho de um ou vários arquivo através de algoritmos muito avançados e complexos. A eficiência desses algoritmos pode ser mesurada pela taxa de compactação — que é o quanto um arquivo foi compactado. Por exemplo, se o tamanho do arquivo for diminuído a metade após a compactação, a taxa de compactação foi de 2:1 ou dois para um.
É importante frisar que não é possível trabalhar diretamente com arquivos compactados. Para manipula-los é necessário descompactar o arquivo. Entretanto, alguns programas descompactam o arquivo, o abrem e assim que o trabalho estiver concluído o compactam novamente, tudo isso para facilitar a rotina de trabalho.
Tipos de compactação
Existem, basicamente, dois tipos de compactação, são elas:
- Compactação sem perda: Não causa nenhuma perda nas informações contidas no arquivo.
- Compactação com perda: É desenvolvida para atingir altas taxas de compactação, porém com perdas parciais dos dados. É aplicada a tipos de arquivos especiais, como músicas e imagens ou arquivos que envolvam a percepção humana.
Arquivos de compactação
Para identificar um arquivo compactado e o programa utilizado para descompactá-lo, basta verificar a extensão do arquivo. Abaixo segue uma listagem dos programas mais comuns de descompactação e como utiliza-los:
gzip
: É capaz de compactar arquivos para a extensão.gz
e descompactá-los. Possui uma ótima taxa de compactação e velocidade.- Estrutura:
gzip
[opções]
[arquivos]
. - Opções:
-d
: Descompacta um arquivo.-l
Lista o conteúdo de um arquivo.gz
.-r
: Compacta diretórios e subdiretórios.
- Estrutura:
bzip2
: É um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactação em arquivos texto se comparado aos já existentes, em consequência sua velocidade de compactação também é menor; quase duas vezes mais lento que ogzip
.- Estrutura:
bzip2
[opções]
[arquivos]
. - Opções:
-d
: Descompacta um arquivo.-l
Lista o conteúdo de um arquivo.bz2
.-r
: Compacta diretórios e subdiretórios.
- Estrutura:
zip
: Utilitário de compactação compatível com arquivos de extensão.zip
.- Estrutura:
zip
[opções]
[arquivo-destino]
[arquivo-origem]
. - Opções:
-r
: Compacta diretórios e subdiretórios.-e
: Permite encriptar o conteúdo de um arquivo.zip
através de senha. A senha será pedida no momento da compactação.-y
: Armazena links simbólicos no arquivo.zip
. Por padrão, os links simbólicos são ignorados durante a compactação.
- Macetes:
- Para a descompactação de arquivos
.zip
no GNU/Linux, é necessário o uso dounzip
seguido do nome do arquivo que deseja descompactar.
- Para a descompactação de arquivos
- Estrutura:
rar
: É um compactador que trabalha com arquivos de extensão.rar
.- Estrutura:
rar
[ações]
[opções]
[arquivos]
. - Ações:
a
: Compacta arquivos.x
: Descompacta arquivos.
- Opções:
p
: Inclui senha no arquivo. Cuidado, pessoas conectadas ao sistema operacional podem capturar a linha de comando facilmente e descobrir a senha.
- Estrutura:
tar
: Não é um compactador, ele apenas junta vários arquivos em um só.- Estrutura:
tar
[opções]
[arquivo-destino]
[arquivo-origem]
. - Opções:
-x
: Extrai arquivos.tar
.-t
: Lista o conteúdo de um arquivo.tar
.-c
: Cria um novo arquivo.tar
.
- Macetes:
- É comum encontrar arquivos
.tar
compactados em um arquivo.gz
— nesses casos a extensão do arquivo será.tar.gz
. Para descompactá-lo basta utilizar a opção-z
para chamar ogzip
.
- É comum encontrar arquivos
- Estrutura: