У меня есть следующий код, и после завершения перекодировки я хочу переместить вновь созданный файл. Но только после этого я не хочу писать в другую папку, как это trancodes. Вот почему я предполагаю использовать exec лучше, поскольку это будет обрабатываться только в том случае, если предыдущий exec прочитал true. Также обратите внимание, что в текущей папке может быть несколько файлов.Переместить только что созданный файл
#!/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, который Безразлично не существует.
Любая помощь будет оценена по достоинству.
Замените предложение 5 строк if/else с помощью: 'TRANSCODEDIR = $ {1: -/path/to/file}' –
Будет ли это перемещать новый mp4 в преобразованную папку? TRANSCODEDIR = $ {1: -/путь к/преобразован/папка} или будет ли это перекодировать в новый каталог? – Keelan
Это просто более компактный способ избежать «if»/'then' /' else', который у вас там есть. – tripleee