次のコードがあり、トランスコードが終了したら、新しく作成したファイルを移動したいと考えています。しかし、後でのみ、トランスコードするときに他のフォルダーに書き込みたくありません。そのため、前のexecがtrueを読み取った場合にのみ処理されるため、execを使用する方が良いと思います。また、現在のフォルダーには複数のファイルが存在する可能性があることに注意してください。
#!/bin/bash
#
# Change this to specify a different handbrake preset. You can list them by running: "HandBrakeCLI --preset-list"
#
PRESET="AppleTV 2"
if [ -z "$1" ] ; then
TRANSCODEDIR="/path/to/folder"
else
TRANSCODEDIR="$1"
fi
find "$TRANSCODEDIR"/* -type f -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%.*}".mp4 -- preset="$PRESET"' __ {} \; -exec rm {} \;
私のLinuxに関する知識はほとんどありません。
#!/bin/bash
#
# Change this to specify a different handbrake preset. You can list them by running: "HandBrakeCLI --preset-list"
#
PRESET="AppleTV 2"
if [ -z "$1" ] ; then
TRANSCODEDIR="/path/to/folder"
else
TRANSCODEDIR="$1"
fi
find "$TRANSCODEDIR"/* -type f -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%.*}".mp4 -- preset="$PRESET"' __ {} \; -exec rm {} \; -exec mv '"${1%.*}".mp4' "/path to/converted/folder" \;
しかし、これは単に出力します:
mv: cannot stat â"${1%.*}".mpâ4: No such file or directory
今、これはメモ帳++の文字がどこかに隠れているのではないかと思ったので、dos2uunixを実行しました。しかし、それでも同じエラーが発生します。
「${1%. }」.mp4 は実際には新しく作成されたファイルを取得しているのではなく、存在しない「${1%.}」.mp4 というファイルを探していると考えています。
どんな助けでも大歓迎です。