Em geral, não é seguro analisar a saída de ls
(veja abaixo) e da mesma forma "*.*"
.
Sugiro usar find
para proteger você do nome de arquivo incomum com caractere especial.
#!/bin/bash
#Convert files using ffmpeg
OrDir="/Volumes/Misc/To Convert 2/"
find "$OrDir" -type f -exec /bin/bash -c \
'f2=$(basename "$1"); \
ffmpeg -i "$1" -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -b:a 192k -ac 2 "/Volumes/Misc/Converted/${f2%.*}.m4v" ' _ {} \;
Você pode verificar isso com um nome de arquivo como
cp myfile.mpg myfile$'\n'with_new_line.mpg
Referências
- Por que não é seguro nem sensato analisar a saída de
ls
?
Existem muitas referências na internet. Você pode ter um entendimento rápido aqui .
Você pode ler muito mais aqui