URGENTE!!!! Escrever um script em BASH

1. URGENTE!!!! Escrever um script em BASH

Catarina Azevedo
catarina_peniche

(usa Outra)

Enviado em 02/12/2017 - 13:42h

Pff se alguém me conseguir ajudar agradeço imenso. Tenho de entregar este trabalho e estou à horas a tentar faze-lo...
Escreva um script em BASH que recebe como parâmetro um conjunto de diretórios e cumpra com os seguintes requisitos:
-caso os diretorios não tenham sido passados na linha de comando, o script deverá pedi-los ao utilizador;
-para cada diretório acessível procura todos os ficheiros de vídeo com extensão 'mp4' e modificados há menos de 7 dias, movendo-os para um diretório chamado '/tmp/RepositorioVideos', o qual terá que garantir que existe aquando da execução do script


  


2. Re: URGENTE!!!! Escrever um script em BASH

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/12/2017 - 21:58h

@catarina_peniche recomendo que leia sobre as ferramentas unix, a specificação single unix[0] lista elas, já que são as ferramentas que chamara pelo shell, conhecendo-as tudo ficara mais facil. De qualquer forma está ai, eu não testei, e caso funcione não sei o quão portavel é, mas acredito que possa ser util para entender o raciocinio.
#!/bin/bash
DIRS="$@"
TARGET="/tmp/RepositorioVideos"
DAYS=`echo $(((60*60*24*7))`
# "[" = "test"
# verifica se os parametros foram passados
# >&2 é usado para redirecionar a mensagem para a saida de erro
if [ -z "$DIRS" ]; then
echo "Os diretorios não foram passados." >&2
exit 1
fi
# verifica se o diretorio onde os videos serão movidos existe e é uma pasta
# caso não exista, ou não seja um diretorio, ele deleta o caminho e o cria
if [ ! -d "$TARGET" ]; then
rm -rf "$TARGET"
mkdir -p "$TARGET"
fi
# anda todos os diretorios, encontra os arquivos .mp4, e,
# caso tenham sido modificados a menos de 7 dias, os move
# para o $TARGET
# os comandos "date" e "stat" foram usados para comparar o tempo
for dir in "$DIRS"; do
files=`ls ${dir}/*.mp4`
current_time=`date +%s`
for file in $files; do
last_modified=`stat -c "%Y" $file`
if [ $((${current_time}-${last_modified})) -lt $DAYS]; then
mv $file $TARGET
fi
done
done


[0]: http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts