Похоже, у вас просто есть пробелы между ha sh и именем файла, которые вам не нужны. Быстрый проход через awk может очистить это для вас. По умолчанию вводимый разделитель awk представляет собой любое количество пробелов. Все, что вам нужно, - это запустить awk и распечатать поля с новым OFS (разделителем выходных полей). Фактически, это делает пропуск через echo
бессмысленным.
time find . -type f -exec bash -c 'md=$(md5 -r "$0"); siz=$(wc -c <"$0"); awk -vOFS="\t" "{print \$1,\$2,\$3}" <<< "${md} ${siz}" ' > listing.txt {} \;
Лично я бы запустил вывод этой команды поиска в какое-то время l oop. Это в основном то же самое, что и выше, но немного легче следовать.
time find . -type f | \
while read -r file; do
md=$(md5 -r "$file")
siz=$(wc -c < "$file")
awk -vOFS="\t" '{print $1,$2,$3}' <<< "${md} ${siz}"
done > listing.txt