Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
Publicado por Carlos Junior 20/04/2009
[ Hits: 6.592 ]
É 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"
Criar gráficos, estatística da "Google-Scholar" usando wget
bash: função para validação de IP (IPv4)
Adicionando novo usuário manualmente
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Problema Envio email GLPI Versao 10.0.15 (0)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (25)
Impressora Canon Ip 1800 (Drivers) 64 bit (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba