1
resposta

No caso de arquivos com espaços nos nomes

Digamos que queira fazer a conversão de diversos arquivo e os mesmos tem nome com espaços, tipo curso de linux.jpg ?

1 resposta

Olá Leonardo! Excelente pergunta. Quando temos arquivos com espaços nos nomes, o shell pode interpretar esses espaços como separadores de argumentos, o que pode gerar erros na execução de comandos. Para lidar com esse tipo de situação, podemos utilizar aspas para indicar que um conjunto de caracteres deve ser considerado como um único argumento.

for arquivo in *; do
  if [ -f "$arquivo" ]; then
    novo_nome=$(echo $arquivo | sed 's/.jpg/.png/g')
    convert "$arquivo" "$novo_nome"
  fi
done

Perceba que, no caso do comando "convert", utilizamos aspas em torno dos argumentos "$arquivo" e "$novo_nome". Dessa forma, o shell irá considerar os espaços nos nomes dos arquivos como parte dos argumentos e a conversão será realizada corretamente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software