Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
Publicado por Carlos Junior 20/04/2009
[ Hits: 6.716 ]
É muito trabalhoso quando se tem muitas músicas armazenadas no disco e queremos criar uma página WEB contendo uma lista desses nossos arquivos de mp3, seja para publicarmos em um servidor, compartilhá-los com amigos, ou até mesmo para uso pessoal.
Este Script faz todo o trabalho automaticamente, criando links simbólicos para os arquivos mp3 em um diretório definido pelo usuário, gerando um arquivo HTML chamado 'gera-mp3.html', e ainda gerando um log com o resultado final.
#!/bin/bash # ##### Nome: gera-mp3 - Versão: 2.0 # ##### Autor: Carlos Schwarz - Data: 30 Nov 2007 # Procura, no diretório atual e sub-diretórios, por arquivos # tipo .mp3, e cria, dentro do diretório passado pelo parâmetro 1, # um link simbólico para cada arquivo encontrado. # Também gera, no diretório atual, um arquivo HTML chamado # 'gera-mp3.html' com links para os arquivos simbólicos criados. ########################################################## ########## CONFIRMANDO ENTRADA DE DADOS CORRETA ########## MsgErro() { echo "Uso: gera-mp3 <diretório>" echo "Onde: <diretório> é aonde serão criados os links simbólicos" echo " dos arquivos .mp3 encontrados no disco." echo -e "OBS: Somente o usuário 'root' tem permissão.\n" # echo -e "Digite: 'gera-mp3 --help' para mais informações (ainda não disponível).\n" } if [ $# != 1 ] then echo "ERRO: Passagem incorreta de parâmetros." MsgErro exit 1 elif [ ! -e "$1/." ] then echo "ERRO: Diretório de destino não encontrado." MsgErro exit 2 elif [ "$(cd "$1"; pwd)" = "$(pwd)" ] then echo "ERRO: Diretório de destino não deve ser diretório atual." MsgErro exit 3 fi if [ "$(whoami)" != "root" ] then echo "ERRO: Somente o usuário 'root' tem permissão." MsgErro exit 4 fi DirHTML="$(echo "$(cd "$1"; pwd)" | cut -d"/" -f"$(echo $(cd "$1"; pwd) | tr "/" "\n" | grep -c "")")" echo -e "\e[1mDestino dos links simbólicos:\e[m" echo " $(cd "$1"; pwd)" echo -e "\e[1mDestino do arquivo HTML:\e[m" echo " $(pwd)/gera-mp3.html" echo -e "\e[1mDestino dos links dentro do arquivo HTML:\e[m" echo -e " href=\"$DirHTML/nome_da_música.mp3\"\n" while true do nulo="" tput sc read -n1 -p "Confirmar (S/n): " Confirmar [ "$Confirmar" != "" ] && read -n1 -s nulo Confirmar=$(echo "$Confirmar" | tr [A-Z] [a-z]) if [ "$Confirmar" = "" ]; then Confirmar="s"; tput cuu1; fi if [ "$Confirmar" = "s" -a "$nulo" = "" ]; then echo; break; fi if [ "$Confirmar" = "n" -a "$nulo" = "" ]; then echo -e "\nCancelado pelo usuário.\n"; exit; fi tput rc ; tput el done ########################################################## ########## DECLARAÇÃO DAS VARIÁVEIS DE AMBIENTE ########## oIFS="$IFS" IFS=" " ContMp3=0 ContDupl=0 Arq="" ########################################################## ########## PROCURANDO, CRIANDO DADOS NO ARQUIVO ########## echo -e "Trabalhando \e[1m...\e[m" echo -e "\n\n################################################################" >> "gera-mp3.log" echo "######### gera-mp3.log - $(date) #########" >> "gera-mp3.log" echo -e "################################################################\n" >> "gera-mp3.log" echo -e " - ARQUIVOS DUPLICADOS NÃO ADICIONADOS: -\n" >> "gera-mp3.log" # echo -e "------------------------------------\n" >> "gera-mp3.log" for Arq in $(find / -wholename "$(pwd)/*.mp3") do Musica="$(echo "$Arq" | tr "/" "\n" | grep ".mp3$")" ln -s "$Arq" "$1/$Musica" > /dev/null 2>&1 if [ $? != 0 ] then echo -e "$Arq" >> "gera-mp3.log" ((ContDupl++)) else echo " <a target=\"_top\"" >> "gera-mp3.html" echo " href=\"$DirHTML/$Musica\">$Musica</a><br>" >> "gera-mp3.html" # echo " target=\"_top\">$Musica</a><br>" >> "gera-mp3.html" echo -e "\n" >> "gera-mp3.html" ((ContMp3++)) fi done [ "$ContDupl" = "0" ] && echo "Nenhum arquivo duplicado foi encontrado." >> "gera-mp3.log" echo -e "\n - RELATÓRIO FINAL: -\n" >> "gera-mp3.log" echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas." >> "gera-mp3.log" echo "Destas, $ContMp3 foram adicionadas com sucesso." >> "gera-mp3.log" [ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas." >> "gera-mp3.log" echo echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas." echo "Destas, $ContMp3 foram adicionadas com sucesso." [ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas." echo IFS="$oIFS"
Script para automatizar OpenVpn
Ispeed v1.1 - Medidor de velocidade de download
Calcular sub-rede, listar e salvar MACs e IPs da rede local
Script de controle do Alfresco para RHEL / CentOS / Fedora
Estok SH 1.2b - Controle de Estoque em Shell Script
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
Vou voltar moderar conteúdos de Dicas e Artigos (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (8)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta