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

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -