No seu comando find
:
find /home/jgeoffrey/Documents -type f -name "*.mov"
você está localizando e iterando sobre .mov
arquivos usando a variável f
. Portanto, o valor da variável $f
já contém .mov
file. Por exemplo, digamos que um dos arquivos seja foo.mov
.
Novamente, em avconf
você usou o arquivo de entrada como $f.mov
, então o nome do arquivo se torna
foo.mov.mov
Isso é exatamente o que o erro diz:
year1video. mov.mov : Nenhum arquivo ou diretório desse tipo
Então você precisa:
avconv -i "$f" -codec copy "$mp4"
como $mp4
já contém o nome do arquivo com .mov
stripped e .mp4
adicionados.
Também cite sua variável contendo nomes de arquivos, caso contrário, ela falhará no caso de nomes de arquivos com espaços em branco.
Além disso, durante o loop de uma lista separada por novas linhas de arquivos, use while
, em vez de for
:
find .... | while IFS= read -r f; do .....