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 cp.
                cp  -r  ~ci066/LabNum2   ~
    

    Em seguida, execute a linha de comando.

    DICA: O caracter ~  usado em um caminho de diretório se refere ao diretório de login do usuário. Quando seguido de um login de qualquer usuário, se refere ao diretório de login deste usuário. Por exemplo, ~ se refere ao seu diretório de login. Por outro lado, ~ci066 se refere ao diretório de login do usuário cujo login é ci066.

  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  /home/especial/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