#!/bin/bash cat - <<\EOF > /dev/null Invoke e.g., like this DU1=du-4.5.2 DU2=du ./du-tests EOF test -x "$DU1" || { echo DU1 envvar not set; exit 1; } test -x "$DU2" || { echo DU2 envvar not set; exit 1; } # Expects $DU1 and $DU2 to be the binaries to compare. d1=$(mktemp -d) cp -a $DU1 $d1/du d2=$(mktemp -d) cp -a $DU2 $d2/du for args in \ '-Sa .' \ '-Sa ../..' \ '-Sa a' \ '-Sa /tmp /t' \ '-Sa /tmp' \ '/tmp /t' \ '-a /tmp /t' \ '-a a' \ '-ca .' \ '-ca ..' \ '-ca ../..' \ '-ca /tmp /t' \ '-ca /tmp' \ '-ca a' \ ; do echo Args: $args ====================== diff -u --label=$DU1 --label=$DU2 \ <(PATH=$d1 du $args 2>&1) <(PATH=$d2 du $args 2>&1) done rm -rf $d1 $d2