Linux 指定的Bash:mv:target不是目录

Linux 指定的Bash:mv:target不是目录,linux,bash,mv,Linux,Bash,Mv,由于某些原因,mv在我的bash脚本中无法正常工作。 此脚本应使用空格重命名mp3文件 ls *mp3 > ls2.txt while read line do sed_name=$(echo $line | sed 's/ /_/g' | sed "s/'//g") mv "'"$line"'" "'"$sed_name"'"; done < ls2.txt rm ls2.txt ls*mp3>ls2.txt 读行时 做 sed_name=$

由于某些原因,mv在我的bash脚本中无法正常工作。 此脚本应使用空格重命名mp3文件

ls *mp3 > ls2.txt

while read line
do
        sed_name=$(echo $line | sed 's/ /_/g' | sed "s/'//g")
        mv  "'"$line"'" "'"$sed_name"'";
done < ls2.txt

rm ls2.txt
ls*mp3>ls2.txt
读行时
做
sed_name=$(echo$行| sed's//|/g'| sed“s//'/g”)
mv““$line””“$sed_name””;
完成
但是我得到了以下错误mv:target-specified不是一个目录(mv:CharStyle-зззаааааааааааааааааа。。试试看


mv“$line”“$sed_name”

这很复杂,为什么不在*.mp3中为i做
;做完成
?这样看起来更容易。我会试试Thankstrange我以为我试过了。。。但这就是问题所在。谢谢。另外,请在echo命令中使用双引号(
echo“$line”
),否则它将无法处理一行中有多个空格的文件名。