2012-01-06 519 views
0

出于某种原因,mv在我的bash脚本中无法正常工作。 这个脚本应该重命名为空格Bash:mv:指定的目标不是目录

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 

MP3文件,但我发现了以下错误MV:指定的目标不是一个目录(MV:указаннаяцельнеявляетсякаталогом)

+2

这是令人费解的,你为什么不只是做'因为我在* .MP3;做...; done'? – fge 2012-01-06 10:42:08

+0

这种方式看起来更容易。我会尽力感谢 – 2012-01-06 10:55:47

回答

1

而不是 “'” $行 “”“ ..只是尝试

MV ”$“ ”行$ sed_name“

+0

奇怪我以为我尝试过......但那是问题所在。谢谢。 – 2012-01-06 10:56:40

+0

此外,在echo命令('echo“$ line”')中使用双引号,或者在连续有多个空格的文件名时遇到问题。 – 2012-01-06 15:21:02