Suponho que você esteja no bash, então ... o bash interpretará alguns caracteres como separadores. isso depende do conteúdo da variável de ambiente $ IFS (separador de campo interno) que tem seu valor padrão para espaço em branco (espaço, tabulação e nova linha). Assim, quando encontrar um caractere de espaço dentro do nome do arquivo, ele será interpretado como um separador e dividirá o nome do arquivo em uma ou mais partes (depende de quantos espaços, guias ou novas linhas serão encontradas).
A solução pode ser alterar o valor de $ IFS para algo que corresponda às suas necessidades. por exemplo, no seu caso, apenas novos caracteres de linha devem ser interpretados como um separador:
# first save current value
OLD_IFS=$IFS
# change value to something you need
IFS="\n"
# do what you need to do here
#############################
# restore default value of IFS
IFS=$OLD_IFS
para mais detalhes veja esta documentação Referência da IFS
EDITAR:
Acabei de fazer alguns testes com o img2pdf. Eu tenho 101 imagens nomeadas como
name_0.png, name_1.png, name_2.png, ..., name_100.png
para colocá-los em um arquivo test.pdf Eu usei esse comando
img2pdf -o test.pdf name_{0..100}.png
e não houve problemas com isso. Então fiz outro teste com arquivos com espaços em nomes como:
name 0.png, name 1.png, name 2.png, ..., name 100.png
e o comando é (o caractere de espaço é escapado pela barra invertida):
img2pdf -o test.pdf name\ {0..100}.png
Espero que isso ajude você.