#!/bin/bash files=($(find $1 -type f -name "*.proto")) paths=() filenames=() for file in ${files[@]}; do path=$(dirname $file) filename=$(basename $file) paths+=("$path") filenames+=("$filename") protoc -I="$path" $filename --cpp_out="$path" done