CI066 - Oficina de Programação
Laboratório 02

Prof. Armando Luiz N. Delgado

Arquivos e Árvore de Diretórios. Manipulação de Arquivos.

  1. SEM EXECUTAR, explique o que faz a linha de comando abaixo. Use o manual on-line para investigar o comando wget.
                wget www.pb.utfpr.edu.br/ribas/aed1/2012-2/praticas/1/ci066.tar.bz2
                tar xf ci066.tar.bz2
                cp -r ~/ci066/LabNum2 ~
    

    Em seguida, execute a linha de comando.

  2. Com ~/LabNum2/docs sendo seu diretório corrente, use ls(1) para obter uma lista dos arquivos deste diretório.

    DICA: Use cd para mudar de diretório corrente e pwd para conferir o resultado.

  3. Metacaracteres em nomes de arquivos. Ainda considerando o diretório ~/LabNum2/docs como corrente, qual será o resultado na tela da execução dos seguintes comandos. ANTES DE EXECUTAR O COMANDO, ANALISE A LINHA E FAÇA UMA PREVISÃO DO RESULTADO.

                 ls *
                 ls m[a-df-z]*
                 ls jan*
                 ls ?????
                 ls jan?? feb?? mar??
                 ls *[!0-9]
                 ls [A-Z]*
                 ls *.*
                 ls *.*.*
                 ls *86
                 ls *[86]
                 ls [fjm][ae][bn]*
    

  4. Ainda no diretório ~/LabNum2/docs qual o efeito dos comandos abaixo? ATENÇÃO: NÃO EXECUTE OS COMANDOS. DESCREVA SEUS EFEITOS MAS NÃO OS EXECUTE.

                 rm ???
                 cp memo1 ../..
                 mv jan* ../bin
                 cp memo2* ~/LabNum2/lib
                 rm *.sv
                 cd; pwd
    

  5. Usando ls(1), listar todos os arquivos dos diretórios abaixo que terminam por a,b,c,d,e,h,j,o,x mas que NÃO COMEÇAM com estes caracteres:

                 /lib
                 /usr/bin
                 /usr/X11/bin
                 ~/LabNum2/pub
    

  6. Criando arquivos e exibindo seu conteúdo. Em seu diretório de login, crie os arquivos fantomas, nacional_kid, incas_venusianos e macanudo usando seu editor predileto. Coloque em cada um deles qualquer texto de sua escolha, desde que cada texto tenha pelo menos 4 linhas. Coloque textos diferenciados em cada arquivo.

  7. O comando touch(1) pode ser usado para criar arquivos sem conteúdo. Usando este comando, crie um arquivo chamado teste.arq.doc.

  8. Usando cat(1), exiba separadamente o conteúdo de cada um dos arquivos criados no item 6.

    NOTA 1: Quando o conteúdo de um arquivo é muito extenso que não cabe todo na tela de terminal, usa-se less(1) ou more(1) para exibir o conteúdo. do arquivo.

    NOTA 2: Os comandos cat(1), less(1) e more(1) são usados para exibir conteúdos de arquivos do tipo texto ou ASCII. Para exibir conteúdo de arquivos de outros tipos outros comandos devem ser usados (por exemplo, od(1)).

  9. Explique o que faz o comando abaixo:
              cat fantomas nacional_kid incas_venusianos macanudo
    

  10. Criando diretórios. Sem mudar de diretório corrente, e usando mkdir(1), crie o diretório ~/Lab/teste.

  11. Copiando, movendo e apagando arquivos e diretórios. Usando cp(1), copie o arquivo macanudo criado no item 6 para este diretório, também SEM MUDAR o diretório corrente.

    DICA: cp(1) usa pelo menos 2 argumentos: um arquivo de origem seguido de um argumento que pode ser o nome de outro arquivo ou o nome de um diretório.

  12. O comando cp (copy) cria uma cópia de um arquivo com outro nome ou copia um arquivo de um diretório para outro. Copie fantomas para o arquivo phantomas e liste o conteúdo do diretório após a operação. Liste também o conteúdo de phantomas.

  13. Copie incas_venusianos para phantomas e liste o conteúdo deste último. Como impedir que o comando cp sobrescreva arquivos?

  14. Remova o arquivo de nome nacional_kid, com o comando rm -i. Tente remover também o arquivo teste.txt. SEMPRE LEIA ATENTAMENTE as mensagens exibidas durante a execução de um comando.

    NESTE PONTO CHAME O PROFESSOR PARA ESCLARECIMENTOS SOBRE O COMANDO rm

    OBS: Lembre-se: O comando de remoção de arquivos, rm é um comando perigoso. Procure sempre usar a forma rm -i para remover arquivos. Mais adiante nesta disciplina veremos como fazer a opção -i ser executada sempre.

  15. Como usar cp(1) para copiar os arquivos fantomas, nacional_kid (criados na aula anterior) e macanudo para o diretório ~/Lab.

    DICA: Quando executado com mais de 2 argumentos, cp(1) copia todos os argumentos (exceto o último) para o último argumento. Neste caso, OBRIGATORIAMENTE este último argumento DEVE SER um diretório.

  16. Mantendo seu diretório de login como diretório corrente, use rm(1) para remover (apagar) o arquivo macanudo do diretório ~/Lab.

    ATENÇÃO: Durante os exercícios e até que você fique bem familiar com o uso de diretórios em linhas de comandos, SEMPRE USAR A OPÇÃO -i de rm(1) (rm -i).

  17. Como deve ser usado rm(1) para remover TODOS os arquivos do diretório ~/Lab?

    DICA: Use metacaracteres como no item 3.

    ATENÇÃO: Fique atento ao que você está digitando como argumento de rm(1). A melhor forma de atuar em UNIX ao executar QUALQUER COMANDO é: ANTES DE TECLAR \enter, LEIA A LINHA DE COMANDO DIGITADA.

  18. Use mv(1) para mover os arquivos fantomas e nacional_kid (que DEVERIAM estar em seu diretório de login) para o diretório ~/Lab. Use ls(1) nos diretórios de origem e destino para verificar se você DE FATO moveu os arquivos.

    NOTA: mv(1) é usado para MOVER arquivos para um diretório. Sua forma de uso é similar a cp(1).

  19. Usando mv(1), mude o nome do arquivo phantomas para fantasma.

    NOTA: mv não apenas move arquivos como também pode ser usado para trocar seus nomes. A linha de comando deve ter APENAS 2 (dois) argumentos do mesmo tipo (dois diretórios ou dois arquivos regulares).

    Neste caso, se o 2º argumento for um diretório já existente, o 1º argumento será MOVIDO para dentro do 2º (não haverá renomeação).

  20. Use APENAS mv(1) para mover o arquivo macanudo (que deveria estar em seu diretório de login) para o diretório ~/Lab/teste, sendo que no destino deve ter o novo nome macanudo-tche.

  21. Removendo diretórios Após remover os arquivos do diretório ~/Lab/teste, remova este diretório com rmdir(1). Usando este mesmo comando, remova ~/Lab. Houve sucesso na operação? O que aconteceu? O que deve ser feito para remover de uma vez por todas o diretório ~/Lab ?

  22. Execute o comando abaixo:
                cp  -r  ~/ci066/LabNum3   ~
    

    O que faz o comando acima?

  23. Navegando em diretórios. Com o diretório LabNum3 como seu diretório corrente, mude sequencialmente para os diretórios abaixo usando apenas o comando cd UMA ÚNICA VEZ, executando o comando pwd(1) após cada execução de cd:
                       lib/teste/bin
                       ~/LabNum3/pub/hard/bin/ghi
                       /usr/share/texmf/tex/latex/amsfonts/
                       ~/LabNum3/tmp/mail
    

    Uma vez no último diretório da lista, mude de um diretório para outro, na seqüência inversa da lista acima, usando alternadamente cd para mudar de diretório e pwd(1) para visualizar seu diretório corrente.

  24. Como copiar arquivos em disquete nos Laboratórios do DInf. Usa-se ftp(1) ou gftp(1). Leia o arquivo de FAQ sobre disquete. Procure o professor para esclarecimentos sobre o comando ftp(1).

Conclusões



Armando Luiz Nicolini Delgado 2005-08-25