linux - Move newly created file -
i have following code , after transcode finishes wish move newly created file. after, don't want write other folder trancodes. why presume using exec better processed if previous exec read true. note there maybe more 1 file in current folder.
#!/bin/bash # # change specify different handbrake preset. can list them running: "handbrakecli --preset-list" # preset="appletv 2" if [ -z "$1" ] ; 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 {} \;
my little knowledge of linux thought maybe:
#!/bin/bash # # change specify different handbrake preset. can list them running: "handbrakecli --preset-list" # preset="appletv 2" if [ -z "$1" ] ; 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" \;
but puts out:
mv: cannot stat â"${1%.*}".mpâ4: no such file or directory
now thought maybe characters notepad++ hiding in there somewhere ran through dos2uunix. still getting same error.
now thinking "${1%.}".mp4 isn't getting newly create file rather looking file called "${1%.}".mp4, doesn't exist.
any appreciated.
find
not support parameter substitutions, need pass ${1%.*}
shell. fortunately, that's not hard do:
find "$transcodedir" -type f -exec bash -c 'handbrakecli -i "$1" -o "${1%.*}".mp4 -- preset="$preset"; rm "$1"; mv "${1%.*}".mp4 "/path/to/converted/folder"' _ {} \;
so clarify; "top level" find -exec bash -c '...' _ {} \;
, bash script inside single quotes contains 3 commands, of operate on same input file.
Comments
Post a Comment