Enviado em 05/03/2021 - 22:17h
Explico melhor. Tenho varias músicas espalhadas pelo computador, fruto de salvar pendrives, celulares, outros HDs, etc. Agora quero criar uma pasta de Música, e com o comando find procurar os arquivos *.mp3. Até aí é fácil. O que eu quero (por curiosidade e motivos didáticos) e que a pasta onde a música encontrada está seja criada dentro do diretório "Música". Por exemplo, o find achou um monte de arquivos *.mp3 dentro de uma pasta chamada "Anos-80". O que eu quero é que essa pasta seja movida para dentro da "Músicas", criando a estrutura "Músicas/Anos-80/*.mp3 e esse processo se repetindo com a pasta Rock, aí ficariaEnviado em 06/03/2021 - 01:55h
find DIR_INICIAL/ -iname "*.mp3" -exec dirname {} \;|sort -u > SAIDA_001.txt
awk -F"/" '{cmd="mkdir","Músicas/"$NF;system(cmd)}' SAIDA_001.txt # Cria o dir com o ultimo campo
awk -F"/" '{cmd="mv ",$0"/*.mp3","Músicas/"$NF;system(cmd)}' SAIDA_001.txt # Move os arquivos
Enviado em 06/03/2021 - 09:42h
Como estou no cel aqui n posso testar, mas seria interessante saber como o find se comportaria se a pasta onde ele estivesse pesquisando fosse movida durante a execução. Dependendo poderia ser melhor rodar ls | xarg mvEnviado em 06/03/2021 - 10:29h
Testa assim:#!/bin/bash
dir_orig=/caminho/para/pasta-origem
dir_dest=/caminho/para/pasta-musicas
IFSOLD=$IFS
IFS=$'\n'
for arq in $(find ${dir_orig} -iname '*.mp3'); do
last_dir=$(dirname ${arq} | awk -F'/' '{print $NF}')
if [ ! -d "${dir_dest}/${last_dir}" ]; then
mkdir ${dir_dest}/${last_dir}
fi
cp ${arq} ${dir_dest}/${last_dir}
done
IFS=$IFSOLD
Pesquisa de informática e sustentabilid... (0)
IMPOSTO DE RENDA 2021 [RESOLVIDO] (11)
Asterisk - Configurando Ramais, Plano de Discagem e URA Simples
Desabilitando o "Instant Messaging" no KDE Plasma
Deixando o Google Chrome em modo Dark no Linux - Experimental
Contador de Palavras no Terminal
mudei o nome da pasta home para root e nada funciona kkkk (5)
mandar header pelo curl [RESOLVIDO] (2)
[Tcl/Tk] Mostrar conexões de rede ativas
[Shell Script] Bashblog v3.0 - cria um microblog em HTML5
[Shell Script] Manutenção e limpeza do Linux
[Shell Script] ebook-cli - gerencia livros digitais entre PC e leitores ebooks
[Shell Script] AptList v1.1 - instalação de pacotes DEB a partir de uma lista