我的脚本可以完美地处理单个文件,但如果我处理多个文件,它会过早删除我的工作文件夹,并且只处理一个文件。如果我不删除工作文件夹,该脚本可以处理多个文件。这是我的脚本:
#!/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