
meu script funciona perfeitamente para um único arquivo, mas se eu processar vários arquivos, ele excluirá minha pasta de trabalho muito cedo e apenas um arquivo será processado. Se eu não excluir a pasta de trabalho, o script funcionará com vários arquivos. Aqui está meu roteiro:
#!/bin/bash
cd /storage/sort_tv/
mkdir workingfolder
for i in *.mp4;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
mv -f workingfolder/* /storage/sort_tv
rm -rf workingfolder
done
Como posso fazer com que todos os arquivos sejam processados E movidos antes que a pasta de trabalho seja removida?
Responder1
Você pode tentar mover os comandos rm para fora do loop. Assim:
#!/bin/bash
cd /storage/sort_tv/
mkdir workingfolder
for i in *.mp4;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
done
mv -f workingfolder/* /storage/sort_tv
rm -rf workingfolder