La razón por la que las personas usan xargsen combinación con find es que se pasarán varios nombres de archivo a la misma invocación de programa de cualquier programa que se xargsinicie. Por ejemplo, si finddevuelve los archivos foo , bar y baz , lo siguiente se ejecutará mvsolo una vez:
find sourceDir [...] -print0 | xargs -0 mv -t destDir
Efectivamente, se llama mvasí:
mv -t destDir foo bar baz
Si no necesita o desea este comportamiento (como supongo que es el caso aquí), simplemente puede usar find's -exec.
En este caso, una solución fácil sería escribir un script de shell corto, como el siguiente:
#!/usr/bin/env bash
[[ -f "$1" ]] || { echo "$1 not found" ; exit 1 ; }
P="$1"
F="$( basename $P )"
ffmpeg -i "$P" -f flv "$F"
Guardar como myffmpeg.shy correr chmod +x myffmpeg.sh. Luego, ejecute lo siguiente:
find . -iname "*.mov" -exec /path/to/myffmpeg.sh {} \;
Esto invocará el script de shell una vez por cada archivo encontrado. El script de shell a su vez extrae el nombre del archivo de la ruta completa y llama ffmpegcon los argumentos apropiados.
xargsen general, pueden consultar stackoverflow.com/questions/3770432/… .