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

Prof. Armando Luiz N. Delgado

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

  1. Explique o que faz a linha de comando abaixo, SEM EXECUTÁ-LO de fato. 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. ATENÇÃO: FAÇA A ANÁLISE DO COMANDO ANTES DE EXECUTÁ-LO, FAZENDO 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. APENAS DESCREVA SEUS EFEITOS.

                 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, cada linha com 20 caracteres ou mais. 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 devem ser usados comandos específicos para cada tipo de conteúdo.

  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 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: Ao mover um arquivo para outro, mv 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 ler/copiar arquivos de/para mídias removíveis nos Laboratórios do DInf. Crie os diretórios ~/Desktop/Disquete, ~/Desktop/CD e ~/Desktop/Pendrive.

  25. Coloque uma mídia removível no local adequado de seu computador e use um dos seguintes comandos:

    ATENÇÃO: $\textstyle \parbox{10cm}{Como só existe um local possível
para inserir as mídi...
...mo módulo \textit{four-head}, cada usuário deve fazer este
exercício por vez.}$

  26. Para acessar os arquivos da mídia, você deve na verdade acessar os arquivos nos diretórios indicados nos comandos do item 25. Qualquer operação feita nestes diretórios estará sendo feita nas mídias.

    Faça operações de escrita e leitura de arquivos (copie arquivos das mídias para seu diretório de login e vice-versa, apague arquivos das mídias, etc.)

  27. ANTES DE RETIRAR A MÍDIA DO COMPUTADOR, execute um dos seguintes comandos (conforme o tipo de mídia): desmonta-cdrom(1), desmonta-disquete(1), ou desmonta-pendrive(1). O argumento do comando deve ser o mesmo usado nos comandos monta-* do item 25.

Conclusões



Armando Luiz Nicolini Delgado
2008-07-11