Last active
February 21, 2018 16:18
-
-
Save thcipriani/350ad7015eba1a7456294c8ccff08bd3 to your computer and use it in GitHub Desktop.
It seems that if we explicitly ignore a file, when that file exists on an rsync target in a deleted directory, rsync --delete will refuse to delete that directory
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -x | |
mkdir -p rsync1/versions/version1/cache/l10n | |
touch rsync1/versions/version1/cache/l10n/en.cdb | |
touch rsync1/versions/version1/cache/l10n/en.json | |
rsync -avz --delete --exclude='**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
touch rsync2/versions/version1/cache/l10n/en.cdb | |
rm -rf rsync1/versions/version1 | |
rsync -avz --delete --exclude='**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# Example run | |
# ---------- | |
# + mkdir -p rsync1/versions/version1/cache/l10n | |
# + touch rsync1/versions/version1/cache/l10n/en.cdb | |
# + touch rsync1/versions/version1/cache/l10n/en.json | |
# + rsync -avz --delete '--exclude=**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# sending incremental file list | |
# created directory rsync2 | |
# ./ | |
# versions/ | |
# versions/version1/ | |
# versions/version1/cache/ | |
# versions/version1/cache/l10n/ | |
# versions/version1/cache/l10n/en.json | |
# | |
# sent 246 bytes received 87 bytes 666.00 bytes/sec | |
# total size is 0 speedup is 0.00 | |
# + touch rsync2/versions/version1/cache/l10n/en.cdb | |
# + rm -rf rsync1/versions/version1 | |
# + rsync -avz --delete '--exclude=**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# sending incremental file list | |
# deleting versions/version1/cache/l10n/en.json | |
# cannot delete non-empty directory: versions/version1/cache/l10n | |
# cannot delete non-empty directory: versions/version1/cache/l10n | |
# cannot delete non-empty directory: versions/version1/cache | |
# cannot delete non-empty directory: versions/version1/cache | |
# cannot delete non-empty directory: versions/version1 | |
# | |
# sent 95 bytes received 372 bytes 934.00 bytes/sec | |
# total size is 0 speedup is 0.00 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -x | |
mkdir -p rsync1/versions/version1/cache/l10n | |
touch rsync1/versions/version1/cache/l10n/en.cdb | |
touch rsync1/versions/version1/cache/l10n/en.json | |
rsync -avz --delete --exclude='**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
touch rsync2/versions/version1/cache/l10n/en.cdb | |
rm -rf rsync1/versions/version1 | |
rm -rf rsync2/versions/version1/cache/l10n/en.cdb # <--- This line is needed because we explicitly --exclude cdb files! | |
rsync -avz --delete --exclude='**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# Example Run | |
# ---------- | |
# + mkdir -p rsync1/versions/version1/cache/l10n | |
# + touch rsync1/versions/version1/cache/l10n/en.cdb | |
# + touch rsync1/versions/version1/cache/l10n/en.json | |
# + rsync -avz --delete '--exclude=**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# sending incremental file list | |
# created directory rsync2 | |
# ./ | |
# versions/ | |
# versions/version1/ | |
# versions/version1/cache/ | |
# versions/version1/cache/l10n/ | |
# versions/version1/cache/l10n/en.json | |
# | |
# sent 240 bytes received 87 bytes 654.00 bytes/sec | |
# total size is 0 speedup is 0.00 | |
# + touch rsync2/versions/version1/cache/l10n/en.cdb | |
# + rm -rf rsync1/versions/version1 | |
# + rm -rf rsync2/versions/version1/cache/l10n/en.cdb | |
# + rsync -avz --delete '--exclude=**/cache/l10n/*.cdb' rsync1/ rsync2/ | |
# sending incremental file list | |
# deleting versions/version1/cache/l10n/en.json | |
# deleting versions/version1/cache/l10n/ | |
# deleting versions/version1/cache/ | |
# deleting versions/version1/ | |
# | |
# sent 93 bytes received 136 bytes 458.00 bytes/sec | |
# total size is 0 speedup is 0.00 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment