Secuencias de comandos Bash: mi secuencia de comandos elimina una carpeta de trabajo prematuramente. ¿Cómo lo soluciono?

Secuencias de comandos Bash: mi secuencia de comandos elimina una carpeta de trabajo prematuramente. ¿Cómo lo soluciono?

mi secuencia de comandos funciona perfectamente para un solo archivo, pero si proceso varios archivos, elimina mi carpeta de trabajo demasiado pronto y solo se procesa un archivo. Si no elimino la carpeta de trabajo, el script funciona con varios archivos. Aquí está mi guión:

#!/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

¿Cómo puedo procesar y mover todos los archivos antes de eliminar la carpeta de trabajo?

Respuesta1

Puedes intentar sacar los comandos rm del bucle. Como esto:

#!/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

información relacionada