web-dev-qa-db-ja.com

出力ファイル名に関するAVConvループの問題

どうすれば向きを変えることができますか:

/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/convert /が存在しなかったため、多数のエラーが発生しました

1
Kevin

basenameコマンドを使用してファイル名から拡張子を削除し、特別な引用符に注意してください

`$(basename $i .avi).mp4`

の代わりに

"$i.mp4"

dirnameは、入力ファイルを含むフォルダーへのパスを抽出するのに役立つ場合があります。 (man dirnameヘルプ)

2
user.dz