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

相关内容