Você pode usar a opção -exec
de find
. Aqui, '{}'
é substituído pelo nome do arquivo de cada arquivo MP4. Isso lidará com todos os tipos de nomes de arquivos, mesmo aqueles que contenham espaços ou novas linhas. Você precisa fornecer -maxdepth 1
para pesquisar apenas o diretório atual.
find . -iname "*.mp4" -maxdepth 1 -exec mp4box -inter 500 '{}' \;
Uma maneira alternativa e mais complicada envolveria a saída de find
em um loop com read
. Aqui, cada arquivo é delimitado pelo caractere NUL
e você precisa informar read
para dividir a entrada nesse caractere, o que é obtido por -d ''
. Você também precisa citar a variável "$file"
, de modo que espaços ou caracteres globbing no nome sejam mantidos.
find . -iname "*.mp4" -maxdepth 1 -print0 | while IFS= read -d '' -r file; do mp4box -inter 500 "$file"; done