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óriodircd ..: 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,gzipoubzip2.
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.tarcom o nome indicadox: extrair dados do arquivo.tarindicadot: 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.tara 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
pwdecd. 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
-ano 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
duedf? - O comando
lspermite 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
mkdirpermite 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 comandotreepara 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,gzipebzip2, e compare os resultados (tamanho).