Bash 腳本:我的腳本過早刪除了工作資料夾。我該如何修復?

Bash 腳本:我的腳本過早刪除了工作資料夾。我該如何修復?

我的腳本完美地適用於單個文件,但如果我處理多個文件,它會過早刪除我的工作資料夾,並且只處理一個文件。如果我不刪除工作資料夾,該腳本將處理多個文件。這是我的腳本:

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

相關內容