#!/bin/sh set -e # setup mkdir -p src/.hidden src/dir mkdir mid dst echo "file1" > src/file1 echo "file2" > src/.file2 echo "file3" > src/.hidden/.file3 echo "file4" > src/dir/.file4 # relative paths zstd -q -r --output-dir-mirror mid/ src/ zstd -q -d -r --output-dir-mirror dst/ mid/src/ diff --brief --recursive --new-file src/ dst/mid/src/ # reset rm -rf mid dst mkdir mid dst # from inside the directory (cd src; zstd -q -r --output-dir-mirror ../mid/ ./) (cd mid; zstd -q -d -r --output-dir-mirror ../dst/ ./) diff --brief --recursive --new-file src/ dst/ # reset rm -rf mid dst mkdir mid dst # absolute paths export BASE_PATH="$(pwd)" zstd -q -r --output-dir-mirror mid/ "${BASE_PATH}/src/" zstd -q -d -r --output-dir-mirror dst/ "${BASE_PATH}/mid/${BASE_PATH}/src/" diff --brief --recursive --new-file src/ "dst/${BASE_PATH}/mid/${BASE_PATH}/src/" # reset rm -rf mid dst mkdir mid dst # dots zstd -q -r --output-dir-mirror mid/ ./src/./ zstd -q -d -r --output-dir-mirror dst/ ./mid/./src/./ diff --brief --recursive --new-file src/ dst/mid/src/