Se você tiver rsync
(remova --dry-run
para fazer isso de verdade):
rsync --dry-run --remove-source-files -avHAX /unencrypted/ /encrypted
Caso contrário, usando bash4 + e GNU stat:
#!/bin/bash
set -e
shopt -s nullglob globstar
for from in /unencrypted/**/*; do
to="${from/\/un//}"
if [[ -d "$from" ]]; then
echo mkdir -p "$to"
echo chmod "$(stat -c %a "$from")" "$to"
echo chown "$(stat -c %u:%g "$from")" "$to"
else
echo cp -a "$from" "$to" && echo rm "$from"
fi
done
echo rm -r /unencrypted
Para executá-lo de verdade, remova echo
de cada comando.