Jawaban:
Gunakan rsync(1):
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermapdan groupmapopsi juga.
mv? Hanya salinan? Atau apakah mvitu?
Per @Kevin di komentar di bawah, --file - |pipesintaksnya berlebihan. Jadi saya sudah menghapusnya.
Ini juga dapat dilakukan dengan tar:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -ini tersirat di kedua ujungnya.
f -bagian.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Tentang panjang yang sama dengan jawaban lainnya, dan perhatikan karena mereka semua menggunakan panggilan pustaka yang sama di bawah tenda, mereka semua melakukan hal yang persis sama - kecuali, seperti yang dicatat Gilles, ini ada pada sistem file dan perangkat yang sama , dalam hal mvini benar - benar sebuah nama baru, yang membuatnya lebih efisien daripada rsyncatau tar.
:bukannya .ketika berhadapan dengan chown?
chownbiasanya membutuhkan keduanya :dan ..
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_- meskipun itu bukan inti dari jawaban Anda, mana yang baik dan saya sudah terbalik.