Pular para o conteúdo

Exercício Prático LPIC 12

Dica publicada em Linux / Comandos
Wagner Souza wagnerfs
Hits: 3.903 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar

Exercício Prático LPIC 12

LPIC - 1:
  • Tópico 103: Comandos GNU e UNIX (Peso 26)
  • Tópico 105: Shell, Scripts e administração de dados (Peso 10)

Para gerenciar melhor a quantidade de arquivos e pastas dentro de um diretório, um administrador de sistema GNU/Linux precisa criar um script que receba como parâmetro, o caminho de um diretório e informe:
  • Total de arquivos;
  • Arquivos ocultos;
  • Pastas;
  • E mostrar o espaço em disco usado pelo diretório passado.

Também é preciso fazer um teste para ver se o usuário passou ou não algum parâmetro. Caso não tenha passado, o script deve ser encerrado. Criar uma mensagem de saudação que, dependendo do horário, dê as saudações bom dia, boa tarde ou boa noite ao usuário que está executando o script.

Solução

Ufa! Parece que vai ser preciso desenvolver um grande script! Nem tanto. Segue abaixo o script comentado:

#!/bin/bash

# Script que recebe como parâmetro o diretório e informa a quantidade
# de sub-diretórios, arquivos ocultos ou não ocultos, porcentagem usada
# do disco rígido pelo diretório e informa uma saudação para quem está
# executando o script

#------------- / SEÇÃO 1 - Variáveis / -------------

# Esta primeira variável, com o auxílio do comando
# grep, vai mostrar todos os arquivos de um dire-
# tório exceto os sub-diretórios. No linux, a saída
# do comando ls -l vai listar todas as informações
# contidas em um diretório. O sinal de ( - ) refere-se
# a arquivos e a letra d refere-se a diretórios. O grep
# retorna tudo o que não for diretório

LIST_ARQ=$(ls -l $1 | grep -v ^d | wc -l)

# Listando arquivos ocultos em um diretório

LIST_ARQ_OCULTOS=$(find $1 -maxdepth 1 -type f -name '.*' | wc -l)

# Aqui eu só vou listar os diretórios excluindo do
# filtro os arquivos

LIST_DIR=$(ls -l $1 | grep -v ^- | wc -l)

# Informa o espaço em disco usado pelo diretório.
# O comando sed vai eliminar a primeira linha que
# não vai nos interessar

USO_DISCO=$(df -h $1 | cut -c34-38 | sed '1d')

# Esta variável será usada na instrução Case para
# dar a saudação ao usuário que está executando o
# script

HORA=$(date +%H)

#----------------- / FIM SEÇÃO 1 / -----------------

#------- / SEÇÃO 2 - Informações de Exibição / ------

# A instrução a seguir faz um teste para saber se foi
# passado algum parâmetro ao script. Caso não, o mesmo
# será encerrado

if  [ $# -ne 1 ]
then
	echo Você não passou nenhum parâmetro!
	exit 1
fi

# Informa uma saudação ao usuário que esta
# executando o script

echo "*************************"
case $HORA in
    0? | 1[01]) echo "Bom Dia $USER"
                ;;
    1[2-7]    ) echo "Boa Tarde $USER"
                ;;
    *         ) echo "Boa Noite $USER"
                ;;
esac
echo "*************************"

echo "Total de arquivos: $LIST_ARQ"
echo "Total de arquivos ocultos: $LIST_ARQ_OCULTOS"
echo "Total de diretórios: $LIST_DIR"
echo "Espaço em disco usado pelo diretório: $USO_DISCO"

#----------------- / FIM SEÇÃO 2 / -----------------

Espero que tenham entendido a resolução deste exercício.

Se possível, aprimorem este script e compartilhe também para a propagação do conhecimento.

Bons estudos.

Erro de chave pública ao atualizar Chrome no Fedora 22

Baixando arquivos de servidores FTP via linha de comando

Shell Script nosso de cada dia - Episódio 1

Google Chrome no Fedora 24

Otimizando o uso da memória RAM do sistema

Iniciando o Mplayer em tela cheia na segunda placa de vídeo

O comando slocate

Recuperando GRUB do Mageia Linux

Instalando pacotes com dependências (rpm)

Montando compartilhamentos remotos do Windows no Linux

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.