Вы можете использовать опцию -exec
в find
. Здесь '{}'
заменяется именем файла каждого файла MP4. Это касается всех видов имен файлов, даже тех, которые содержат пробелы или переводы строк. Вам нужно указать -maxdepth 1
чтобы искать только текущий каталог.
find . -iname "*.mp4" -maxdepth 1 -exec mp4box -inter 500 '{}' \;
Альтернативный, более запутанный способ заключался бы в передаче результата find
в цикл с read
. Здесь каждый файл ограничен символом NUL
, и вам нужно указать read
чтобы разделить ввод этого символа, что достигается с помощью -d ''
. Вам также необходимо заключить в кавычки переменную "$file"
, чтобы пробелы или символы-заглушки в имени были сохранены.
find . -iname "*.mp4" -maxdepth 1 -print0 | while IFS= read -d '' -r file; do mp4box -inter 500 "$file"; done