Use rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
No Linux (Debian, Ubuntu Mint ...),
Existe algum comando de opção ou algo que eu possa usar para transferir arquivos para outro usuário sem ter que fazer:
sudo mv /home/poney/folderfulloffiles /home/unicorn/
sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles
Use rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
Por @Kevin nos comentários abaixo, a sintaxe --file - |pipe
é redundante. Então eu removi isso.
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
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Com o mesmo tamanho das outras respostas, e note que todos estão usando as mesmas chamadas da biblioteca, estão fazendo exatamente a mesma coisa - a menos que, como observa Gilles, isso seja o mesmo sistema de arquivos e dispositivo, em cujo caso mv
é realmente um renomear, o que o torna mais eficiente do que rsync
ou tar
.