Código corrigido:
DIR="$@"
EXT="*.pdf"
mkdir -p "${DIR}/images"
shopt -s nullglob
for pdffile in "$DIR"*.pdf; do
convert -density 300 -depth 8 -quality 90 -trim "${pdffile}" "$(dirname "${pdffile}")/images/$(basename "${pdffile%.*}").jpeg"
done
Deve transformar este caminho images/foo/bar.jpeg
, o que causa erro, para este foo/images/bar.jpeg
Explicação:
Você tem valor como este "foo/bar.pdf"
na variável ${pdffile}
dirname ${pdffile}
- remove o último componente não-slash do caminho, deixando isto: "foo"
basename ${pdffile%}
- por outro lado, remova todos, exceto o nome do arquivo, deixando o seguinte: "bar.pdf"
Por fim, insira o nome do subdiretório $images
entre essas partes e obtenha o caminho necessário para armazenar imagens - foo/images/bar.jpeg
.