Відповіді:
Використання rsync(1):
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermapта groupmapваріанти.
mvтак, правда? Тільки копії? Або mvце?
Пер @ Кевін у коментарях нижче, --file - |pipeсинтаксис є зайвим. Так я його зняв.
Це також можна зробити за допомогою tar:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -ця мається на увазі з обох кінців.
f -частини.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Приблизно такої ж довжини, що й інші відповіді, і зауважте, оскільки всі вони використовують однакові дзвінки з бібліотеки під кришкою, вони роблять абсолютно те саме - якщо, як зазначає Жилл, це в тій же файловій системі та пристрої , в такому випадку mvце дійсно перейменування, що робить його більш ефективним, ніж rsyncабо tar.
:замість того, щоб мати .справу з chown?
chownзазвичай приймає і те, :і ..
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_- хоча це навряд чи сенс вашої відповіді, що добре, і я вже підтримав.