Bash スクリプト: スクリプトによって作業フォルダーが途中で削除されます。どうすれば修正できますか?

Bash スクリプト: スクリプトによって作業フォルダーが途中で削除されます。どうすれば修正できますか?

私のスクリプトは 1 つのファイルでは完璧に動作しますが、複数のファイルを処理すると、作業フォルダーが早く削除され、1 つのファイルのみが処理されます。作業フォルダーを削除しないと、スクリプトは複数のファイルで動作します。これが私のスクリプトです:

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

作業フォルダーを削除する前に、すべてのファイルを処理して移動するにはどうすればよいですか?

答え1

rm コマンドをループ外に移動してみてください。次のようにします。

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

関連情報