Exercício Prático LPIC 12
Dica publicada em Linux / Comandos
Exercício Prático LPIC 12
LPIC - 1:
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:
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.
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.
- 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.