我想出了这个:
for i in *;
do input=`echo $i|sed -e 's/[ ]/\\\ /g'`;
output=`echo $input".mp3"`;
mv $input $output; done
Run Code Online (Sandbox Code Playgroud)
它非常接近,但它抱怨:
mv:无效选项 - '\'
我不太明白为什么它不起作用如果我尝试回显$ input或$ output他们似乎都正确地逃避了文件名中的所有空格而已.
find . -type f -exec mv "{}" "{}.mp3" \;