1#!/bin/sh 2set -e 3 4# setup 5mkdir -p src/.hidden src/dir 6mkdir mid dst 7 8echo "file1" > src/file1 9echo "file2" > src/.file2 10echo "file3" > src/.hidden/.file3 11echo "file4" > src/dir/.file4 12 13# relative paths 14zstd -q -r --output-dir-mirror mid/ src/ 15zstd -q -d -r --output-dir-mirror dst/ mid/src/ 16 17diff --brief --recursive --new-file src/ dst/mid/src/ 18 19# reset 20rm -rf mid dst 21mkdir mid dst 22 23# from inside the directory 24(cd src; zstd -q -r --output-dir-mirror ../mid/ ./) 25(cd mid; zstd -q -d -r --output-dir-mirror ../dst/ ./) 26 27diff --brief --recursive --new-file src/ dst/ 28 29# reset 30rm -rf mid dst 31mkdir mid dst 32 33# absolute paths 34export BASE_PATH="$(pwd)" 35 36zstd -q -r --output-dir-mirror mid/ "${BASE_PATH}/src/" 37zstd -q -d -r --output-dir-mirror dst/ "${BASE_PATH}/mid/${BASE_PATH}/src/" 38 39diff --brief --recursive --new-file src/ "dst/${BASE_PATH}/mid/${BASE_PATH}/src/" 40 41# reset 42rm -rf mid dst 43mkdir mid dst 44 45# dots 46zstd -q -r --output-dir-mirror mid/ ./src/./ 47zstd -q -d -r --output-dir-mirror dst/ ./mid/./src/./ 48 49diff --brief --recursive --new-file src/ dst/mid/src/ 50