Risposte:
Utilizzare rsync(1):
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermape groupmapopzioni.
mvcosì, vero? Solo copie? O lo mvfa?
Per @Kevin nei commenti seguenti, la --file - |pipesintassi è ridondante. Quindi l'ho rimosso.
Questo può essere fatto anche con tar:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -sia implicito su entrambe le estremità.
f -parte.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Circa della stessa lunghezza delle altre risposte e nota dal momento che usano tutte le stesse chiamate in libreria sotto il cofano, stanno facendo esattamente la stessa cosa - a meno che, come nota Gilles, questo sia sullo stesso filesystem e dispositivo , nel qual caso mvè davvero una ridenominazione, che lo rende più efficiente di rsynco tar.
:invece di un .quando hai a che fare chown?
chownprende in genere entrambi :e ..
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_- sebbene non sia questo il punto della tua risposta, il che è positivo e ho già votato.