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

Prof. Armando Luiz N. Delgado

  1. Copie o diretório ~ci066/LabNum5 para sua área de login.

  2. Entrada e Saída Padrão. Redirecionamento. Concatene os arquivos texto_01.txt, texto_02.txt, texto_03.txt, texto_04.txt em ~/LabNum5/docs, sendo que o resultado deve ser colocado no arquivo ~/TextoConcatenado.txt.

    NÃO VALE USAR EDITOR DE TEXTO.

    DICA: O comando cat(1) é usado para exibir na tela o conteúdo de 1 (um) arquivo. Se mais de um arquivo é fornecido como argumento do comando, os conteúdos destes arquivos serão exibidos na tela um após o outro.

  3. Acrescente ao final do arquivo ~/LabNum5/docs/texto_01.txt o conteúdo de ~/LabNum5/docs/texto_04.txt.

    AINDA NÃO VALE USAR EDITOR DE TEXTO.

  4. Liste os arquivos de ~/LabNum5/docs e coloque o resultado no arquivo ~/arquivos.lst.

  5. Acrescente ao final de ~/arquivos.lst a relação dos arquivos em ~ci066/LabNum4 que não são diretórios e que não são executáveis.

  6. Faça com que o efeito destrutivo dos redirecionamentos de saída ( > e  2> ) seja bloqueado pelo shell.

    DICA: Veja a seção sobre o assunto nas Notas de Aula # 05.

  7. Coloque no arquivo ~/arquivos.lst a relação dos arquivos em ~ci066/LabNum4 que SÃO diretórios. O conteúdo anterior de ~/arquivos.lst deve ser descartado. Este exercício deve ser resolvido com APENAS uma linha de comando e usando APENAS o comando find(1).

  8. Pipelines. Usando uma única linha de comando, produza uma lista ordenada de todos os arquivos em /bin, /usr/bin e /usr/local/bin cujo nome comece pelas letras a, b ou c. O resultado deve ser colocado em ~/comandos.lst.

    DICA: Para ordenar o conteúdo de um arquivo, usa-se o comando sort(1).

    PARA REFLETIR: Para encontrar os arquivos neste exercício é melhor usar ls(1) ou find(1)?

  9. Execute o comando who(1), ordene o resultado com sort(1) e o resultado final coloque no arquivo usuarios.txt no diretório ~/LabNum5.

  10. Como descobrir quantos arquivos existem em um diretório, usando o ls(1) e wc(1)?

  11. Utilizando echo(1), exiba na tela a frase ``O diretorio corrente possui num_files arquivos.'', onde num_files deve ser substituído pelo número de arquivos do diretório corrente.

    DICA: Veja a Seção 4 nas Notas de Aula # 05.

  12. Mais Pipelines.Como fazer para se obter uma lista de todos usuários logados no computador que você está usando, ordenada alfabeticamente? Elimine possíveis duplicações de nomes de usuários.

    DICA 1: Problemas deste tipo são resolvidos por partes. Verifica-se qual comando UNIX resolve cada parte e depois combina-se os comandos selecionados usando-se pipeline.

    DICA 2: Neste exercício, verifique como os comandos sort(1), who(1) e cut(1) podem ajudá-lo.

  13. Você quer saber quem são os campeões de espaço ocupado em sua área. Por enquanto, você quer encontrar diretórios cujos arquivos no total ocupem mais que 500 Kbytes. Dê uma solução para este problema usando pelo menos um pipeline.

    DICA 1: Veja a DICA 1: do item anterior.

    DICA 2: Verifique como os comandos sort(1), du(1) e find(1) podem ajudá-lo.

  14. Você ainda quer saber quem são os campeões de espaço ocupado em sua área. Agora, você quer saber quais arquivos regulares tem tamanho maior que 100 Kbytes). Dê uma solução para este problema usando pelo menos um pipeline.

    DICA 1: Veja as dicas do item anterior.

  15. Concatene os arquivos ~ci066/LabNum5/docs/arqs_01.txt, ~ci066/LabNum5/docs/arqs_02.txt e ~ci066/LabNum5/docs/arqs_03.txt para o arquivo ~/LabNum5/arqs.txt, que ao final deve ser comprimido com bzip2(1) produzindo o arquivo ~/LabNum5/arqs.txt.bz2. Esta operação deve ser feita em apenas UMA linha de comando, usando pipelines.

Conclusões



Armando Luiz Nicolini Delgado
2008-07-11