Respostas:
Use rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermap
e groupmap
também.
mv
é verdade? Apenas cópias? Ou faz mv
isso?
Por @Kevin nos comentários abaixo, a --file - |pipe
sintaxe é redundante. Então eu o removi.
Isso também pode ser feito com tar
:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -
está implícito nas duas extremidades.
f -
peça.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Aproximadamente o mesmo comprimento das outras respostas, e observe que, todos eles usam as mesmas chamadas de biblioteca ocultas, todos estão fazendo exatamente a mesma coisa - a menos que, como Gilles observa, isso esteja no mesmo sistema de arquivos e dispositivo , nesse caso, mv
é realmente uma renomeação, o que a torna mais eficiente que rsync
ou tar
.
:
vez de um .
quando se lida com chown
?
chown
normalmente leva ambos :
e .
.
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_
- embora esse não seja o ponto da sua resposta, o que é bom e eu já votei.