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