我该如何转身:
/media/MediaOne/Movies/Kids/Aladdin.avi
/media/MediaOne/Movies/Kids/Incredibles.avi
进入
/media/MediaOne/converted/Aladdin.mp4
/media/MediaOne/converted/Incredibles.mp4
当使用 avconv 循环目录时?
目前,它们的输出如下:
/media/MediaOne/Movies/Kids/Aladdin.avi.mp4
/media/MediaOne/Movies/Kids/Incredibles.avi.mp4
以下是我正在尝试的:
for i in /media/MediaOne/Movies/Kids/*.avi; do avconv -i "$i" -c copy "$i.mp4"; done
也尝试过这个:
for i in /media/MediaOne/Movies/Kids/*.avi; do avconv -i "$i" -c copy "/media/MediaOne/converted/$i.mp4"; done
但出现了一堆错误,因为 $i/media/MediaOne/verted/ 不存在
答案1
使用basename
命令从文件名中删除扩展名,注意特殊引号
`$(basename $i .avi).mp4`
代替
"$i.mp4"
dirname
可能有助于提取包含输入文件的文件夹的路径。(man dirname
寻求帮助)