#!/usr/bin/env bash set -e workdir=$(mktemp -d) par=${$} trap 'rm -rf "${workdir}"' EXIT # create a lot of directories for testing mkdir -p "${workdir}"/in/{a,b,c,d,e,f}/{1,2,3,4,5,6}/{a,b,c,d,e,f}/{1,2,3,4,5,6} # and files touch "${workdir}"/in/{a,b,c,d,e,f}/{1,2,3,4,5,6}/{a,b,c,d,e,f}/{1,2,3,4,5,6}/{a,b,c,d,e,f} mkdir "${workdir}"/out for i in $(seq 1 10); do ( tar -C "${workdir}"/in -c . | tar -x -C "${workdir}"/out ) & done for i in $(seq 1 10); do wait done diff -dupr "${workdir}"/{in,out}