微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux命令为目录中的所有文件提供文件扩展名

我想出了这个:

for i in *; 
do input=`echo $i|sed -e 's/[ ]/\\\ /g'`; 
output=`echo $input".mp3"`; 
mv $input $output; done

它非常接近,但它抱怨:

mv: invalid option — ‘\’

我不太明白为什么它不起作用如果我尝试回显$input或$output他们似乎都正确地逃避了文件名中的所有空格而已.

解决方法:

看起来你使用sed(和echo)会大大过度复杂化……

您正试图在文件名中转义空格字符,但实际上您只需要将文件名括在引号中.你可以简单地做……

for i in *; do
    mv "${i}" "${i}.mp3"
done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐