जवाबों:
उपयोग करें 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 $_- हालांकि यह शायद ही आपके उत्तर का बिंदु है, जो अच्छा है और मैं पहले ही उत्थान कर चुका हूं।