Відповіді:
Використання 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 $_
- хоча це навряд чи сенс вашої відповіді, що добре, і я вже підтримав.