Script Bash: mude para um diretório com caracteres especiais

2

Eu tenho um script bash que passa pela minha coleção de músicas e faz o download de capas ausentes. O problema que tenho é que não consigo fazer o cd para alguns diretórios que tem '&' '(' e outros personagens.

A parte relevante do script é copiada abaixo:

IFS="\n"
IFS="$(printf '\n\t')"
for i in 'find $1 -mindepth 2 -maxdepth 2 -type d '!' -exec sh -c 'ls -1 "{}"|egrep -i -q "^cover\.(jpg|png)$"' ';' -print'; do
        echo "===="
        echo "processing: " $i
        cd "${i}"
        #download_cover $i
        echo "++++"
done

Se eu executar este script para esses diretórios, recebo esta saída:

cd 'media/FlacMusic/Mumford & Sons/Sigh No More'
devel/get_album_cover.sh: line 22: cd: media/FlacMusic/Mumford & Sons/Sigh No More: No such file or directory
    
por Gianpaolo Racca 16.11.2015 / 13:50

1 resposta

0

Esta é a solução do OP. Foi postado como uma edição para a pergunta, deve ser uma resposta.

I took out the braces around the variable and the script runs just fine.

cd "$i"
    
por 10.12.2017 / 21:19

Tags