UNIX: Comandos em arquivos
Comandos básicos
Os comandos a seguir implementam operações básicas em arquivos:
ls
: listar o conteúdo do diretório corrente (ou de um diretório dado).rm
: remover arquivos.mv
: movimentar arquivos.cp
: copiar arquivos.cat
: apresentar o conteúdo de arquivos.more
: visualizar o conteúdo de arquivos (paginado).ln
: criar links (atalhos).
Os comandos usados para navegação na árvore de diretórios são similares aos usados em outros sistemas operacionais:
pwd
: indica qual o diretório corrente do shell.cd
: troca de diretório:cd dir
: muda para o diretóriodir
cd ..
: muda para o diretório pai imediatamente superior.cd -
: volta para o último diretório visitado.cd ~user
: vai para o diretório HOME do usuário indicado.cd
: volta ao diretório HOME.
mkdir dir
: criação do diretóriodir
.rmdir dir
: remoção do diretóriodir
.
Informações em arquivos
Vários comandos permitem obter maiores informações sobre arquivos e sistemas de arquivos. Eis os principais:
stat
: detalhes sobre um arquivo ou diretório (i-nodes).file
: identificar o conteúdo de um arquivo, analisando-o.whereis
: indica onde estão os binários, fontes e páginas de manual de um comando dado.touch
: atualiza a data de um arquivo (o cria, se não existir).which
: indica o caminho completo para o comando dado.du
: indica o espaço usado em disco pelos arquivos ou diretórios dados.df
: informações sobre os sistemas de arquivos disponíveis na máquina e sua ocupação.tree
: apresenta na tela uma estrutura de diretórios, com ou sem os arquivos.
Compressão de arquivos
Tradicionalmente, a compressão de arquivos em UNIX é feita em dois passos:
- Aglutinação dos arquivos e diretórios em um único grande arquivo, usando o comando
tar
. - Compressão do arquivo único, usando comandos como
compress
,gzip
oubzip2
.
O comando tar
é bastante antigo, e significa Tape ARchiving (tar também é “piche” em inglês, o que sugere o processo de aglutinação). Ele era muito usado para copiar diretórios em fitas magnéticas. Com as opções adequadas, permite guardar diversos arquivos e diretórios em um único arquivo. Sua sintaxe básica é:
- Para criar um arquivo
.tar
:tar cvf arq.tar dir1 dir2 dir3 …
- Para abrir um arquivo
.tar
:tar xvf arq.tar
- Para listar o conteúdo de um arquivo
.tar
:tar tvf arq.tar
As principais opções do comando tar são:
c
: criar um novo arquivo.tar
com o nome indicadox
: extrair dados do arquivo.tar
indicadot
: listar o conteúdo do arquivo “.tar”indicadov
: verbose, mostra detalhes na tela sobre o que está sendo feitof
: indica que o próximo parâmetro é o nome do arquivo.tar
a ser usado. Caso não seja indicado, é usado o conteúdo da variável$TAPE
, ou o arquivo/dev/rst0
(fita magnética).z
: para comprimir/expandir os arquivos tratados usando o comandogzip
(ver abaixo).Z
: para comprimir/expandir os arquivos tratados usando o comandocompress
(ver abaixo).
Após feita a aglutinação, pode-se compactar o arquivo usando-se um dos comando abaixo:
- “compress” : compactador standard do UNIX, hoje em dia pouco usado, mas presente em todas as plataformas. Gera arquivos com extensão “.Z”.
- “gzip” : GNU-Zip, um compactador extremamente popular, é muito eficiente. Gera arquivos com extensão “.gz”.
- “bz2” : De uso recente e ainda pouco difundido, certamente será muito usado nos próximos anos, por ser ainda mais eficiente que o gzip. Gera arquivos com extensão “.bz2”.
Um procedimento muito usado é o uso combinado dos comandos tar e gzip, através das opções “z” e “Z” do comando tar. Assim, para obter um arquivo comprimido corrente.tar.gz
com todo o conteúdo do diretório corrente, basta executar o seguinte comando:
tar czvf corrente.tar.gz .
(atenção ao “.”, que indica o diretório corrente)
Os arquivos “.tar.gz” também costumam ser nomeado como “.tgz”, e definem o formato da maior parte dos arquivos UNIX encontrados na Internet. Arquivos nesse formato também podem ser abertos pelas versões recentes do compactador WinZip, do Windows.
Exercícios
- Como procurar por uma palavra no manual (
man
)? - Liste todos os arquivos do seu diretório
HOME
. - Como você pode saber em qual diretório você está no sistema?
- Qual o comando para saber qual a conta que está sendo usada em um SHELL?
- Liste o nome do grupo de usuários ao qual sua conta pertence.
- Visite alguns diretórios, alternando os comandos
pwd
ecd
. Os diretórios são os seguintes:/home/espinf o predecessor do diretório /home/espinf / /usr /tmp /usr/bin seu diretório HOME
- Liste o conteúdo dos diretórios acima, ordenados por data, de duas formas:
- sem sair do seu diretório HOME
- acessando primeiramente o diretório a ser listado
- O que faz a opção
-a
no comandols
? E a opção-l
? - Liste usuários do sistema com o mesmo nome que o seu
- O que são arquivos/diretórios cujo nome inicia com um caractere
.
? - Crie um link simbólico para o diretório infraComp do seu colega ao lado. Use este link para listar o conteúdo do diretório
- O que fazem os comandos
du
edf
? - O comando
ls
permite obter listagens de diretórios sob várias formas. Consulte a página de manual do comando e execute-o de forma a obter listagens da seguinte forma:- listagem longa do diretório home, com detalhes. O que significa cada coluna da listagem ?
- listagem curta do diretório home, incluindo os arquivos escondidos.
- listagem longa de
/var/spool/mail
, ordenada por tamanho dos arquivos - listagem longa de
/etc
, ordenada alfabeticamente - listagem longa de
/home
, ordenada por datas crescentes - listagem curta de
/usr
, recursiva e ordenada por tamanho
- O comando
mkdir
permite criar diretórios com subdiretórios. Leia sua página de manual e execute-o para criar a seguinte estrutura de diretórios (dentro de seu diretório home), usando apenas uma operação. Use o comandotree
para conferir a estrutura criada:a `-- b |-- c | |-- d | | `-- h | | | `-- e | |-- f | `-- d | `-- j
- Crie um arquivo
.tar
, com o conteúdo do seu diretório HOME. A seguir, compacte-o usando os comandocompress
,gzip
ebzip2
, e compare os resultados (tamanho).